PHP Ajax按钮按下难题

时间:2013-10-07 16:47:02

标签: javascript php jquery html ajax

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

Example

2 个答案:

答案 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"/>