目前我正在尝试使用JQuery构建一个民意调查。
$('#next').click(function(){
$.ajax({
type:'POST',
url: 'getNextPoll.php?pg=1',
dataType: json,
success: function() {
$("#a .ui-btn-text").text(data.answera);
$("#b .ui-btn-text").text(data.answerb);
$("#c .ui-btn-text").text(data.answerc);
$("#d .ui-btn-text").text(data.answerd);
} // end of success callbac
});
});
我有四个id = a..d的按钮。我想要做的是引入四个答案值并将每个答案值放在一个按钮中。出于某种原因虽然它只允许我得到一个值$ row [0]而没有别的?谁能告诉我我哪里做错了?
感谢您的时间。
编辑:这是php代码
<?php
require_once('connection.php');
require_once('constants.php');
$pg = isset($_GET['pg']) ? $_GET['pg'] : 0;
$nxtPage = $pg++;
$offset = (1 * $pg) - 1;
$result = mysql_query("SELECT * FROM Questions ORDER BY pk_Id DESC LIMIT 1" . " OFFSET " . $offset) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo json_encode($row);
?>
答案 0 :(得分:2)
这是我的应用程序的典型Ajax查询,它可以说明一些要点:
$.ajax({
url: "link.php",
timeout: 30000,
data: 'user_id='+id, //data in to php
dataType: 'json', //data type being returned
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("An error has occurred making the request: " + errorThrown)
},
success: function(returndata){
$('#row1').html(returndata.value1);
$('#row2').html(returndata.value2);
}
});
因此,要以您正在使用的方式获得正确的返回结果,您不仅需要发回适当的数据(json,XML等),还要告诉jQuery它正在获得什么。只有这样,它才会知道如何在Returndata回调中正确解析它。
实现这一目标的最简单方法之一就是让你的ajax页面调用另一个执行-php stuff的页面并返回一个数组。然后,只需在该页面上回显json_encode($ array),而不是其他内容。只要您将数据类型声明为Json,就可以通过returndata.datafieldname访问成功函数中的数据。如果你的数组中有一个名为id的字段,并且你的成功函数使用变量数据来获得返回结果,你可以通过data.id访问success函数中的数据。
在您的具体示例中,您似乎正在尝试使用Ajax未返回的PHP数据设置值。如果是这样的话,为什么不做一个$ .post?
答案 1 :(得分:1)
根据bpeterson76的回答,我认为这会有效(未经测试):
你的php:
<?php
require_once('connection.php');
require_once('constants.php');
$pg = isset($_GET['pg']) ? $_GET['pg'] : 0;
$nxtPage = $pg++; $offset = (1 * $pg) - 1;
$result = mysql_query("SELECT * FROM Questions ORDER BY pk_Id DESC LIMIT 1" . " OFFSET " . $offset) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);
echo json_encode($row);
?>
然后,你的js:
$('#next').click(function(){
$.ajax({
type:'GET',
url: 'getNextPoll.php?pg=1',
dataType: json
success: function(data) {
$("#a .ui-btn-text").text(data.answera);
$("#b .ui-btn-text").text(data.answerb);
$("#c .ui-btn-text").text(data.answerc);
$("#d .ui-btn-text").text(data.answerd);
} // end of success callback
这一切都假设您的相关mysql字段名为answera,answerb,answerserc和answerd。