2014-07-23 135 views
0

任何想法为什么这不起作用?我试图看看点击的按钮实际上是否与警报一起工作,有警报以及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"]; 
?> 
+0

如果你在ajax中回显“你好”..你甚至到达那里? – Naruto

+0

检查网址是否正确或没有检入开发者工具或萤火虫 –

+0

我在ajax的成功中创建了一个提醒,它通过 – DaViDa

回答

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

您可能需要更改“身体”标签..或不 取决于什么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> 

你会要的风格提交输入 是否想法帮助?没有阿贾克斯,但。

+0

事情是页面也需要切换到其他文件。例如,我选择了一个带有复选框的文章,我点击了编辑。必须发布选中的复选框值,以便从要放入的数据库中加载正确的文章,例如test.php。 – DaViDa

+0

编辑帖子,希望它有帮助或导致正确的答案.. –

+0

对不起,如果我不是很清楚,我需要重定向到test.php在变量发布的同时。我想继续在test.php中使用post变量而不是当前文档。 – DaViDa

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

希望这有助于...

-1

将返回FALSE;阿贾斯呼叫后

+0

为什么返回false? –

+1

您可以发表评论。 –

+0

给你的答案增加一些解释会使其对其他人更有用,并使其更有可能被提升为有用的。 – Palpatim

0

你没有看到AJAX reqeust通过的原因是因为当你点击锚标签时,浏览器正在执行导航到'test.php'的默认操作,这取消了AJAX呼叫。由于您只是简单地获取该页面,而不是POST'ing,因此$_POST中没有任何内容。为了防止这种默认操作,或者使用一个span代替a标签(推荐),或者阻止默认动作,做这样的事情:

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

如果我明白你的意思,你希望将selectedCheckboxes作为JSON传递给服务器。在这种情况下,您需要将您的selectedCheckboxes变量实际传递给服务器。 像这样:

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

与您的代码的问题是,你通过含有以“selectedCheckboxes”的字符串一个新的JSONObject。你没有传递实际的变量。