1

我一直在尝试让按钮在页面上执行 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>

例子

4

2 回答 2

0

首先,您的 html 标签的 id 以及您在 js 中引用它们的方式看起来很奇怪(尽管当作为字符串放入 js 或 html 时仍然可能有效)。看起来您试图在 html 和 js 中以不正确的方式引用 php 值。

其次,您的 javascript 控制台上是否出现任何错误?ajax 查询是否完成(即您是否收到警报消息)?检查你的 JS 控制台,因为这会告诉你一些比“什么都没有发生”更多的事情

我通常使用 ajax 的 success 选项而不是 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)}
            });
于 2013-10-07T16:56:01.013 回答
0

让我们从评估您的 php 开始:

为了运行您的 php,您必须打开 php 标签:

 $("#ON<?php echo $id ?>")...

在您希望您的身份出现的任何地方替换它。要进行调试,请在浏览器中打开您的页面源代码并查看生成的内容:

例子:

<input type="submit" class="ON" id="ON<?php echo $id ?>" value="ON" name="submit"/>
于 2013-10-07T16:56:14.403 回答