获取一些刚发布的数据

时间:2012-06-27 21:35:42

标签: jquery

我正在使用此代码发布一些数据

$('.update_btn').live("click",function() 
{
var ID = $(this).attr("id");
var dataString = 'msg_id='+ ID;

$.ajax({
type: "POST",
 url: "get-data.php",
 data: dataString,
 cache: false,
 success: function(){
 //alert(dataString);//is not empty
 getData();
 }
});
return false;
});

function getData()
{
   $.ajax({ 
      type: "GET",    
      url: 'get-data.php',                                                                   
      success: function()          
      {
      var jq = '<?php echo $_POST['msg_id'];?>';   
      alert(jq);      
      } 
    });
}

和函数数据来检索刚发布的数据,但var jq没有发布数据。可能是什么原因?。

2 个答案:

答案 0 :(得分:2)

success: function(r) { alert(r); }

你试图以一种非常奇怪的方式混合PHP和JS。在PHP AJAX处理程序脚本中吐出已发布的变量。

答案 1 :(得分:2)

由于您正在使用jQuery(或任何JavaScript),因此您不会将PHP代码嵌入其中......

假设您只想归还msg_id,而您get-data.php就不会有这样的内容:

<?php
  // all the database work here to obtain the id..

  echo $data['msg_id'];
?>

然后将你的getData函数转换为:

function getData()
{
   $.ajax({ 
      type: "GET",    
      url: 'get-data.php',                                                                   
      success: function(jq)          
      {
      alert(jq);      
      } 
    });
}

现在,为了扩展这个 - 如果你的返回将是某种类型的数组,你将需要在你的php中使用json_encode ...就像这样:

<?php
$data = mysqli_fetch_array(mysqli_query("SELECT * FROM table"), MYSQL_ASSOC);

echo json_encode($data);
?>

逻辑上,因为我们返回json array我们的JavaScript也会更改:

function getData()
{
   $.ajax({ 
      type: "GET",    
      url: 'get-data.php',                                                                   
      success: function(response)          
      {
      var jq = $.parseJSON(response);
      alert(jq.msg_id);      
      } 
    });
}

不多两者之间的区别。但希望这个答案已经把你进一步道路上的您正试图使用​​的工具开明的理解。有很多jQuery的教程在那里,如果你只是谷歌对于他们......许多JavaScript顽固(包括我自己),会敦促你学习原生JavaScript,以便你能够理解jQuery幕后发生的事情。这是一个非常好的主意,如果你谷歌的话,还有很多关于它的信息和教程。

我确信有些人会为你的阅读推荐一些书籍。