2014-03-24 113 views
1

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

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>"; 
} 

,但没有运气:(

我没有收到任何错误,文本框我点击编辑按钮后仅保持禁用。谁能帮助我?先谢谢了。

+0

请张贴生成的html代码。 – tjati

+0

“编辑”按钮是否位于method =“post”的表单内? – larsAnders

+0

有没有触发这些回声的东西?因为我看到您正在积极地将元素更改为禁用 – PlaceUserNameHere

回答

0

尝试使用的onclick在您的按钮

<input type="button" name="edit" id="edit" onclick="document.getElementById('oldnotes').disabled=false; document.getElementById('record').disabled=false; return false;"> 

我希望它能帮助。

+0

感谢您的回复,该工作正常,但文本框变为启用状态,然后页面立即刷新,以便文本框再次禁用。有任何想法吗?如果没有,那么它可能只是在某处的代码错误..我肯定找不到它。如果没有生病,明天就来求救! :) – user3266484

+0

对不起,我忘了说:插入“return false;”作为onclick中的最后一件事=“...”。 它会强制按钮不提交表单。 –

+0

非常感谢,完美的工作! – user3266484

1

这是这些类型的问题更好的方法:

if (isset($_POST['edit'])){ 
?> 

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

<?php 
} 
0

使用单引号脚本类型

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

第二种方法似乎正确,但您在那里缺少;。另外,你还没有放置任何换行符。

这里是我的建议:

<?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中取出并保存在if块中。

此外,我一直保持警报,以检查您的代码结构是否正确。如果您在点击编辑按钮时收到提醒,则意味着您的方向正确。你只需要在JS上锻炼。

如果没有什么不对您的编辑按钮和form POST

0

使用此jQuery代码:

<script> 
$('#oldnotes,#record').attr('disabled','') 
</script> 
0

如果你想使用JS用PHP,你可以在这里阅读: how to write javascript code inside php

然而:似乎你想要的JS就它在评价自己的协议在PHP逻辑调用按照实施提供。

从技术上讲,你的JS只是说它应该重新启用控件。而是将JS功能添加到提交控件的OnClick,它应该可以正常工作。这也是测试功能的更快捷方式。

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

一旦它被点击,它将隐藏适当的控件,而不是试图在未执行的时候写入新的JS。这是尝试和测试,应该适合你。

希望它有帮助!

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