后变量不通过

时间:2014-07-23 14:01:22

标签: php jquery ajax variables post

知道为什么这不起作用?我试图看看点击的按钮是否真的适用于警报,是否有警报以及ajax代码之前和之后它们都有效。

var selectedCheckboxes = "12421";

jQuery(document).ready(function($){
                $(".editArticle").on("click",function(){
                    $.ajax({
                        url: "test.php",
                        type: "POST",
                        data: { selectedCheckboxes: "selectedCheckboxes" },
                        success: function(response){
                              //do action  
                        },
                        error: function(){
                              // do action
                        }
                    });
                });
            });

链接:

 <a href="test.php" class="editArticle">Edit</a>

test.php的

<?php
echo $_POST["selectedCheckboxes"];
?>

5 个答案:

答案 0 :(得分:2)

请改为尝试:

<a href="javascript:void(0);" class="editArticle">Edit</a>

如果你想在你的页面输出php,你必须在你的javascsript中做这样的事情

$(".editArticle").on("click",function(){
                $.ajax({
                    url: "test.php",
                    type: "POST",
                    data: { selectedCheckboxes: selectedCheckboxes },
                    success: function(response){
                          $("body").html(response);
                    },
                    error: function(){
                          // do action
                    }
                });
            });

您可能需要更改“body”标签..或不 取决于teste.php返回的内容

好吧,如果您不希望将输出放在当前页面html中,可能会有更好的方法。 也许有更好的答案,但你可以尝试类似的东西:

<form method="post" action="test.php" onsubmit="javascript:$('#selectedCheckboxes').val(selectedCheckboxes);">
    <input type="hidden" value="" name="selectedCheckboxes" id="selectedCheckboxes">
    <input type="submit" value="Edit">
</form>

您必须设置提交输入的样式 这个想法有帮助吗?不过没有ajax。

答案 1 :(得分:0)

您没有看到AJAX请求的原因是因为当您单击锚标记时,浏览器正在执行导航到'test.php'的默认操作,这将取消AJAX调用。由于你只是简单地获取该页面而不是POST,因此$_POST中没有任何内容。为了防止此默认操作,请使用span而不是a标记(推荐),或阻止默认操作,执行以下操作:

<a href="#" class="editArticle">Edit</a>

答案 2 :(得分:0)

如果我说得对,您希望将 selectedCheckboxes 作为JSON传递给服务器。在这种情况下,您需要将 selectedCheckboxes 变量实际传递给服务器。 像这样:

$.ajax({
    url: "test.php",
    type: "POST",
    data: selectedCheckboxes,
    success: function(response){
        //do action  
    },
    error: function(){
        // do action
    }
});

您的代码的问题在于您传递了一个新的JSONObject,其中包含一个包含&#34; selectedCheckboxes&#34;的字符串。你没有传递实际变量。

答案 3 :(得分:-1)

您尝试传递变量selectedCheckboxes但不幸的是,您使用双重(“”)引号将字符串作为 selectedCheckboxes

传递

使用以下代码

var selectedCheckboxes = "12421";

var dataObject = {};
data[selectedCheckboxes] = 1;
    jQuery(document).ready(function($){
                $(".editArticle").on("click",function(){
                    $.ajax({
                        url: "test.php",
                        type: "POST",
                        data: dataObject ,
                        success: function(response){
                              //do action  
                        },
                        error: function(){
                              // do action
                        }
                    });
                });
            });

希望这会有所帮助......

答案 4 :(得分:-1)

返回false;在ajax调用之后