jquery,如何从$ .ajax POST获取var?

时间:2011-09-02 04:03:47

标签: php jquery

edit3:我在facebook应用程序中使用此脚本,并且不确定如何操作

我使用帖子将var传递给php文件:

<div id="talentnum" class="cont_talentnum"><?php echo $number; ?></div>
<a class="mine_click" href="#"></a>

这里是

 var strtalentnum;
$('.mine_click').live('click', function() {
    strtalentnum = $(this).closest("li").find(".cont_talentnum").text();
    $('#mine').trigger('click');

});

$("#mine").click(function(){
 if(strtalentnum){
  $.ajax({  
  type: "POST",  
  url: "fb_test.php",  
  data: strtalentnum,  
  success: function() { 
    var talentnum = strtalentnum; //this is 6203222
  alert(strtalentnum);
  }  
  });  
 }
});

并且php文件是:

<?php
function fb_test()
{ echo 'xxx';
echo $_GET['strtalentnum'];
}
?>

然后我在同一个html页面中调用该函数:

<?php  function fb_test(); ?>

如果我运行这个,我只得到xxx。我也获得了成功提示in my case '6203222'所以我知道POST正在发生

如果我查看Chrome网络标题,我可以看到:

Request Method:POST
Status Code:200 OK
Form Data
6203222:

为什么我不能使用$_GET['strtalentnum'];

任何想法?

感谢

编辑:$_POST['strtalentnum'];不会做任何工作

edit2添加了html

4 个答案:

答案 0 :(得分:1)

您需要一个变量名称:

var strtalentnum = $('#strtalentnum').val();
$("#mine").click(function(){
 if(strtalentnum){
  $.ajax({  
  type: "POST",  
  url: "fb_test.php",  
  data: "strtalentnum=" + strtalentnum,
  dataType: 'html',  
  success: function() { 
    var talentnum = strtalentnum; //this is 6203222
  alert(strtalentnum);
  }  
  });  
 }
});

形式:

<form method="post">
<input id="strtalentnum" type="text" name="strtalentnum" value="526558" />
<input id="mine" type="submit" name="submit" />
</form>

立即测试:

<?php
function fb_test()
{ echo 'xxx';
echo $_POST['strtalentnum'];
}
?>

答案 1 :(得分:0)

使用$_POST而非$_GET访问通过POST方法传递的变量

答案 2 :(得分:0)

因为你必须通过 $ _ POST ['strtalentnum'] 而不是$ _GET ['strtalentnum']得到这个。

答案 3 :(得分:0)

对于您的数据,您无法传递字符串,该变量需要您实际上在说的名称

fb_test.php?strtalentnum= 

如果是GET。

将您的数据($ .ajax)更改为:

  $.ajax({  
  type: "POST",  
  url: "fb_test.php",  
  data: {strtalentnum: strtalentnum }  
  success: function() { 
    var talentnum = strtalentnum; //this is 6203222
    alert(strtalentnum);
   }  
  });