如何在PHP代码中嵌入JavaScript?

3

我有一个HTML表单和PHP代码。在我的表单中,我有一个文本框和一个文本区域。在两个输入控件中,我都包括了“disabled”选项。我希望这两个文本框一直保持禁用状态,直到用户决定点击“编辑”按钮,在这种情况下,这两个文本框应启用以便进行更改并再次保存输出。根据我所做的研究,唯一的方法是使用JavaScript,因此我已在我的PHP中包含了以下代码;

if (isset($_POST['edit']))
{
    echo "<script type=\"text/javascript\">";
    echo "var oldnotes = document.getElementById('oldnotes');";
    echo "oldnotes.disabled = false;";
    echo "var record = document.getElementById('record');";
    echo "record.disabled = false;";
    echo "</script>";
}

我也尝试过;
if (isset($_POST['edit']))
{
    echo "<script type=\"text/javascript\">";
    echo "$('#oldnotes').removeAttr('disabled')";
    echo "$('#record').removeAttr('disabled')";
    echo "</script>";
}

但是没有运气:(
我没有收到任何错误信息,文本框在我点击编辑按钮后仍然保持禁用状态。有人能帮我解决这个问题吗?提前致谢。

请发布生成的 HTML 代码。 - tjati
“Edit”按钮是否位于具有method="post"的表单内部? - larsAnders
有什么东西触发了这些回声吗?因为我看到你正在主动将元素更改为禁用状态。 - PlaceUserNameHere
JavaScript对标题来说无关紧要 - 请将标题更改为相关。PHP只能生成HTML(或者发送到输出流的任何内容)。这可能包含JS,但这不是提问的问题..即查看生成的输出 - user2864740
8个回答

4
这是解决这类问题的更好方法:
if (isset($_POST['edit'])){
?>

<script type="text/javascript">
var oldnotes = document.getElementById('oldnotes');
oldnotes.disabled = '';
var record = document.getElementById('record');
record.disabled = '';
</script>

<?php
}

1
 <?
 <script language='javascript'>
 (javascript code here)
 </script>
 ?>

1
第二种方法看起来是正确的,但你漏掉了那里的 ;。另外,你还没有加入任何换行符。
这是我的建议:
<?php

if (isset($_POST['edit'])) {
    ?>
    <script type="text/javascript">
        alert("Check entry"); // Use this for checking if your script is reaching here or not
        $('#oldnotes, #record').removeAttr('disabled');
    </script>
    <?php

}
?>

你不需要打印整个东西。你可以将它放在PHP外部,保留HTML标签并在一个if块内保留它。
另外,我保留了弹出窗口以检查您的代码结构是否正确。如果在单击编辑按钮时收到警报,则表示您正在正确的路径上。你只需要解决JS问题。
如果没有,那么您的编辑按钮和form POST可能有问题。

1
尝试在你的按钮上使用 onclick。
<input type="button" name="edit" id="edit" onclick="document.getElementById('oldnotes').disabled=false; document.getElementById('record').disabled=false; return false;">

我希望它有所帮助。

谢谢你的回复,那个方法可以正常工作,但是文本框会变为可用状态,然后页面立即刷新,所以文本框又变为不可用状态。有什么想法吗?如果没有,可能只是代码中的某个地方出了问题...我相信我会找到它的。如果找不到,明天我会来寻求帮助的! :) - user3266484
对不起,我忘了说:在onclick="..."内部的最后一行插入"return false;"。 这将强制按钮不提交表单。 - Thiago Melo

0

在脚本类型中使用单引号

echo "<script type='text/javascript'>\n";
//javascript goes here
echo "</script>";

0

你可以随时制作一个cookie 使用document.cookie()onclick=“”设置为更改cookie的值 并创建一个在打开网站时运行并获取cookie的脚本(使用window.onload = function(){/*代码放在这里*/}


0
使用这段jQuery代码:
<script>
$('#oldnotes,#record').attr('disabled','')
</script>

0

如果你想在PHP中使用JS,你可以在这里阅读: 如何在php中编写javascript代码

然而:根据提供的实现,似乎你希望JS在PHP逻辑中自行调用。

从技术上讲,你的JS只是说明它应该重新启用控件。最好将JS功能添加到提交控件的OnClick事件中,这样应该能正常工作。这也是一种更快的测试功能的方法。

<a href="javascript:void(0);" onclick="document.getElementById('oldnotes').disabled=false;" >

点击后,它将隐藏相应的控件,而不是试图动态编写未执行的新JS。这经过尝试和测试,应该能正常工作。
希望对你有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接