我想将mysql_fetch_array()的结果数组传递给javascript函数。
这是一段代码。
<?php
$msDetails= mysql_query("select * from article_master where status='complete'") or die(mysql_error());
while ($row= mysql_fetch_array($msDetails)) {
$co_auth_name=mysql_query("select fname from author_detail where journal_id='$jid' && article_id='$row[1]' && (correspondng_author != 'on' || correspondng_author = 'false')");
$num=mysql_affected_rows();
echo $num; //2
while ($co_auth=mysql_fetch_array($co_auth_name))
{
$JArray= json_encode($co_auth);;
echo $JArray;
}
?>
<tr>
<td><a href="javascript:popup_viewReports('<?php echo $JArray ?>');">View</a>
</td>
</tr>
<?php
}
?>
如何将$ co_Auth传递给viewReports()??
答案 0 :(得分:1)
试试这个。看起来您可以使用一个查询来执行脚本,而不是如何使用它来执行脚本。我假设author_detail表的列“article_id”引用了author_master表的PK“id”。
<?php
// Assuming author_master's PK is "id" and author_detail's column author_id refernces it
$query = "SELECT ad.*
FROM article_master am
JOIN author_detail ad ON am.id = ad.article_id
WHERE am.status = 'complete'
AND ad.journal_id = '$jid'
AND (ad.corresponding_author <> 'on' || ad.corresponding_author == 'false')";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)): ?>
<tr>
<td><a href="javascript:popup_viewReports('<?php echo $row['fname'] ?>');">View</a></td>
</tr>
<?php endwhile; ?>
答案 1 :(得分:0)
您将其作为字符串发送。删除昏迷并且应该工作。
<a href="javascript:popup_viewReports(<?php echo $JArray ?>);">
答案 2 :(得分:0)
您在循环中分配$ JArray,然后在循环外输出它。 只输出最后一个值。
答案 3 :(得分:0)
好吧,首先 - 虽然这不是'错误',但你应该研究MySQLi或PDO,因为现在所有的mysql_函数都已被弃用了 - 但这只是暂时的。
你正在做的是将每一行转换为它自己的JSON编码数组 - 改为:
while ($row = mysql_fetch_assoc($co_auth_name))
{
$JArray[] = $row;
}
$JArray = json_encode($JArray);
然后你可以像你一样回应结果。假设你用来解析JSON的函数当然是正确的。
希望有所帮助。
答案 4 :(得分:0)