0

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

$('.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没有发布数据。可能是什么原因?

4

2 回答 2

2

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

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

于 2012-06-27T21:40:45.947 回答
2

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

假设您只想返回 themsg_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);
?>

从逻辑上讲,因为我们返回的是JavaScript,所以我们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 顽固分子(包括我自己),都会敦促您学习 Native JavaScript,以便您了解 jQuery 幕后发生的事情。这是一个非常好的主意,如果你用谷歌搜索的话,还有很多关于它的信息和教程。

我相信有些人也有一些他们可以推荐给你阅读的书。

于 2012-06-27T21:52:12.767 回答