我有一个AJAX请求,它使用POST将信息发送到页面,并返回以下内容:
echo '<tr>';
echo '<td>';
echo $product1;
echo '</td>';
echo '<td>';
echo $code1;
echo '</td>';
echo '<td>';
echo $value1;
echo '</td>';
echo '<td>';
echo $time1;
echo '</td>';
echo '</tr>';
// echo '</table>';
echo 'Your code has been successfully redeemed!';
这是我在客户端的代码:
}else{
$('#poo tr:last').after(result);
}
我的问题是......虽然这可以很好地附加到表客户端的末尾,但我还想传递另一个要在PHP中使用的变量,或者更具体地说,是数据库查询结果可以在PHP中使用。
似乎无法弄清楚如何输出不同的东西,因为它会搞砸我现在只是回应HTML的安排。
有什么想法吗?
谢谢! :)
答案 0 :(得分:3)
您可以使用json结构:
echo json_encode( array( "html" => $myhtml, "otherdata" => $myotherdata ) );
然后在jquery中访问每个部分。
$.ajax({
url: "myhandler.php",
dataType: "json"
}).done(function(json){
$('#foo tr:last').after(json.html);
alert(json.otherdata);
});
但请注意,如果$myotherdata
是一个关联数组(或我们在javascript中调用它的对象),则警报将只显示[object Object]
(这不是错误!使用点语法引用它的属性或数组语法json.otherdata.key
或json.otherdata["key"]
)
答案 1 :(得分:2)
您可以从AJAX请求中返回任何内容;你只需要告诉JQuery如何处理它。
如果您使用$.getJSON
来调用AJAX请求,那么您可以使用json_encode
对PHP结构进行编码,它将出现在具有类似结构的JS中。
答案 2 :(得分:2)
您可以获取JSON格式的所有数据并从中读取。例如,在PHP中,您可以构建一个由您想要的不同类型数据组成的多维数组。考虑下面的多维数组。
$array = array(
'table' => array(
$product1,
$code1,
$value1,
$time1,
),
'anothervar' => array(
'someValue',
'anotherVal',
'someMoreval',
'andValue',
),
'somemorevar' => array(
'data',
'someMoreData',
'anotherData'
),
);
使用PHP的json_encode函数将其转换为JSON。
$json = json_encode($array);
echo $json;
然后使用javascript从JSON读取数据。并做任何你喜欢的事。
希望这会有所帮助。
答案 3 :(得分:1)
作为免责声明,我不会定期编写PHP代码,但您只需将格式从表结构更改为JSON:
echo '{';
echo 'Product1:';
echo $product1;
echo ',Code1:';
echo $code1;
echo ',Value1:';
echo $value1;
echo ',Time1:';
echo $time1;
echo '}';
然后更改您的客户端脚本以获取此JSON对象并在客户端构建表结构。然后,您也可以以这种方式传递其他变量。
答案 4 :(得分:1)
我在查找JSON信息时遇到了类似的问题。它就在那里,你必须看。在此期间,您可以使用javascript .split()
函数创建一些荒谬的字符序列。例如。
<?php
echo //EVERYTHING YOU WANT IN THE FIRST PART;
echo '|#@!|';
echo //EVERYTHING YOU WANT IN THE SECOND PART;
?>
并在jQuery方面
...function(result(){
var resultArray = result.split('|#@!|');
// YOU NOW HAVE BOTH PARTS. ONE IS IN resultArray[0], THE OTHER IN resultArray[1]
});
希望这会有所帮助。