2013-04-30 77 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; ?>