我一直试图让一个按钮在页面上执行PHP脚本并刷新div标签而没有任何成功。当我删除脚本的$ ajax部分时,我的按钮会改变状态,但是当我再次添加ajax部分时,没有任何反应。
我需要从PHP文件加载一些内容,然后更改按钮和div标签状态。一些帮助将非常受欢迎,因为我似乎无法找到问题。
<div id="noah-content">
<script>
$(document).ready(function() {
$("#ON'.$id.'").click(function() {
document.getElementById("ON'.$id.'").disabled = true;
document.getElementById("OFF'.$id.'").disabled = false;
$.ajax({
type: "POST",
url: "some.php",
data: {
param: $(this).attr("src");
}
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
$("#OFF'.$id.'").click(function() {
document.getElementById("ON'.$id.'").disabled = false;
document.getElementById("OFF'.$id.'").disabled = true;
});
});
</script>
<img src="images/about.png" alt="image" id="myimg" />
<input type="submit" class="ON" id = "ON'.$id.'" value=" ON " name="submit"/>
<input type="submit" class="OFF" id = "OFF'.$id.'" value=" OFF " name="submit" disabled="disable"/>
</div>
答案 0 :(得分:0)
首先,你的html标签的id以及你在js中引用它们的方式看起来很奇怪(尽管在作为字符串放入js或html时仍然有效)。看起来你试图在html和js中以不正确的方式引用php值。
其次,你的javascript控制台上有任何错误吗? ajax查询是否完成(即您是否收到警报消息)?检查你的JS控制台,因为这会告诉你一些事情,而不是“没有发生”
另外
我通常使用ajax的成功选项而不是done方法。个人选择。
$(this).attr("src");
之后您还有语法错误。分号通常表示代码行的结尾,并将它放在数组的数组/对象声明中的元素之后。
$.ajax({
type: "POST",
url: "some.php",
data: {
param: $(this).attr("src") //Removed the semicolon that was here
},
success: function(data){alert(msg)}
});
答案 1 :(得分:0)
让我们从评估你的php开始:
为了运行你的php,你必须打开php标签:
$("#ON<?php echo $id ?>")...
将其替换为您想要显示ID的所有位置。要进行调试,请在浏览器中打开页面源并查看生成的内容:
示例:
<input type="submit" class="ON" id="ON<?php echo $id ?>" value="ON" name="submit"/>