在完成计算表格后,通过PHP加载总数,我们有4个数据(用PHP留下的变量)
$ totalprice; $ totalduration; $ totaldives; $ totalhire;
目前PHP的每一个都以echo结束。然后ajax会像这样收集它们。
success: function() {
$('#results').html();
问题是回声都是结果。
我想发送$totalprice to $('#resultsprice').html();
$totalduration to $('#resultsduration').html();
等等......
任何想法如何做到这一点?
非凡
答案 0 :(得分:7)
您可以从PHP返回JSON字符串:
echo json_encode( array('totalprice'=>$totalprice, 'totalduration'=>$totalduration, 'totaldives'=>$totaldives, 'totalhire'=>$totalhire));
然后,更改你的jquery ajax调用以将响应设置为json:
$.ajax({
url: your_url,
dataType: 'json',
success: function (data) {
$('#resultsprice').html(data.totalprice);
$('#resultsduration').html(data.totalduration);
});
答案 1 :(得分:6)
使用php函数json_encode()。首先在php中创建一个包含4个变量的数组。 Json对数组进行编码并回显结果。然后在jQuery中使用jQuery.parseJSON()将json代码解析为javascript变量。这是一个例子:
PHP:
$data = array('var1' => 'value1', 'var2' => 'value2', 'var3' => 'value3', 'var4' => 'value14');
echo json_encode($data);
jQuery的:
success: function(data) {
data = jQuery.parseJSON(data);
}
答案 2 :(得分:3)
使用JSON作为数据格式。
在PHP中,您可以使用json_encode
创建JSON字符串。 compact
是一种从变量创建关联数组的简单方法:
echo json_encode(compact('totalprice', 'totalduration', 'totaldives', 'totalhire'));
// compact produces array('totalprice' => <value-of-totalprice>, ...)
// json_encode produces '{"totalprice": <value>, ...}'
在jQuery中,将dataType
选项设置为json
,传递给success
回调的参数将是一个JavaScript对象:
$.ajax({
// ... all other options ...
dataType: 'json',
success: function(data) {
// use .html() only for HTML data
$('#resultsprice').text(data.totalprice);
$('#resultsduration').text(data.totalduration);
//...
}
});
答案 3 :(得分:2)
AJAX调用实际返回了什么?如果它是包含各种值的JSON对象,则可以将每个值设置为各种HTML元素。像这样:
success: function(data) {
$('#resultsprice').html(data.TotalPrice);
$('#resultsduration').html(data.TotalDuration);
// etc.
}