2013-04-30 36 views
0

我想将mysql_fetch_array()的结果数组传递给javascript函数。无法将php数组转换为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

的[传递一个PHP数组JavaScript函数]可能重复(http://stackoverflow.com/questions/4885737/pass-a-php-array-to-a-javascript-function) – SuperSaiyan 2013-04-30 10:26:45

+0

另外,使用'$ JArray [] = $ co_auth;',然后在循环之后使用json_encode。 – SuperSaiyan 2013-04-30 10:28:46

回答

0

您将它作为字符串发送。删除昏迷,并应该工作。

<a href="javascript:popup_viewReports(<?php echo $JArray ?>);">

0

你在一个循环中分配$ JArray,然后将外循环输出它。 只输出最后一个值。

0

好吧,首先 - 虽然它不是'错误',但您应该查看MySQLi或PDO,因为所有的mysql_函数现在都已被弃用 - 但这只是一个例外。

你在做什么有转向的每一行到它自己的JSON编码数组 - 这样做,而不是:

while ($row = mysql_fetch_assoc($co_auth_name)) 
{ 
    $JArray[] = $row; 
} 
$JArray = json_encode($JArray); 

然后你可以只回声出结果,当您在做什么。这是假设你用来解析JSON的函数当然是正确的。

希望有所帮助。

0
  1. 作为@Edson梅迪纳说,只有最后一个元素是可见的
  2. 您应该将$ JArray initalization的foreach外观之外,最有可能的脚本开始时,与即null或空字符串给它分配
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; ?>