我正在使用此代码发布一些数据
$('.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
没有发布数据。可能是什么原因?。
答案 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幕后发生的事情。这是一个非常好的主意,如果你谷歌的话,还有很多关于它的信息和教程。
我确信有些人会为你的阅读推荐一些书籍。