如何将单个php变量返回给ajax

时间:2014-11-14 06:31:24

标签: php jquery ajax variables

如何在ajax调用后访问各个php变量?我有两个变量从message.php $ id和$ messageid返回,我需要从ajax访问这些变量。

在我的php中我有:

if($array1){
$id = "1";
$messageid = $messageid;
}

AJAX:

$(document).ready(function(){
$('#newmessage').on('submit',function(e) {

$.ajax({
    url:'message.php',
    data:$(this).serialize(),
    type:'POST',
    dataType: 'HTML',
    success:function(data){

if($.trim(data) == "1") { <-- this needs to be data.id

$("#message").modal("hide"); <-- this needs to be #message.data.messageid

}
else{
alert("error"); 
}

3 个答案:

答案 0 :(得分:3)

试试这个,

在php中,您需要以json格式返回响应:

if ($array1) {
  $id = "1";
  $messageid = $messageid;
}

echo json_encode(array('id' => $id, 'messageid' => $messageid));

在Javascript中:您需要检索响应并按照自己的方式解析它。

您应该将dataType: 'HTML',更改为dataType: 'json',

答案 1 :(得分:0)

在php中使用

$arr['id'] = "1";
$arr['messageid'] = $messageid;

echo json_encode($arr);

在js ajax中,使用dataType: 'json' 在js中成功,

使用data.id或data.messageid。

答案 2 :(得分:0)

除了json之外,另一种方法:

在你的php文件中:

echo $id."#".$messageid;

现在你的ajax成功函数:

$.ajax({
    url:'message.php',
    data:$(this).serialize(),
    type:'POST',
    dataType: 'HTML',
    success:function(data){

    var result=data.split('#');//for splitting id and message
    //result[0] will contain id
    // result[1] will contain msg
    //use result accordingly

}
希望它有所帮助...