【发布时间】:2018-04-03 00:28:18
【问题描述】:
注意:这个问题已经被否决了 3 次,但没有人提供被否决的理由。这对任何人都没有帮助 社区。不要让这阻止您通过以下方式获得出色的答案 Anurag 和 Phil,如下所示。
我正在使用 Ajax、json 检索数据。数据库可能不返回任何结果、一条记录或多条记录。当我收到数据时,我需要知道行数。如果只有一行,它将简单地填写表格。如果有多行,则将用户定向到列表以进行选择。
更详细的解释,行数存储在PHP文件中的$Rows变量中,这个变量来自于查询的结果,没有必要展示。有一个查询,这是它后面的代码。因此,换句话说,我需要知道如何将 $Rows 变量与多维数组一起发送回 jQuery 函数。如果这仍然无法理解,请参阅这些特定部分中的 cmets。
基本上查询后,我的PHP是这样的:
$Rows = mysql_num_rows($Result);
if($Rows == 1)
{
$P = mysql_fetch_assoc($Result);
$Output = json_encode($P);
}
elseif($Rows > 1)
{
$x = 0;
while($ProgRow = mysql_fetch_array($Result))
{
// Of course, I could add the $Row var here, but I would need
// To add it to each row, which seems a little daffy
$P[$x]['ID'] = $ProgRow['ID'];
$P[$x]['ProgCode'] = $ProgRow['ProgCode'];
$P[$x]['ProgName'] = $ProgRow['ProgName'];
$x++;
}
$Output = json_encode($P);
}
else
{
$P = json_encode(0);
$Output = $P;
}
echo($Output);
这里是 jQuery:
$.ajax(
{
type: 'POST',
url: 'scripts/UtilAjax.php',
data: 'Sec=EditPrograms',
dataType: 'json',
success: function(data,status)
{
// ideally what needs to happen here is to be able to
// return the $Rows variable as well, to determine how
// To deal with the return data.
console.log(status);
console.log(data.ID+' '+data.ProgCode+' '+data.ProgName);
}
});
【问题讨论】:
-
$ProgRow["ProgCode"];你必须用引号括起来keys。 -
对于一个与问题无关的例子的相当小的批评。是你把我降级的人吗?
-
解决方案并不复杂......总是发送一个数组并检查它的长度。对于没有结果发送空数组
-
首先我没有降级你(如果你指的是我),我的评论不是批评(如果你也指我的话)。我只是想指出你可能错过的东西,所以也许你可以从那开始。
-
当#rows > 1 时,您没有创建关联数组,因此也不要为其他条件创建关联数组