2013-02-20 69 views
2

我想將PHP數組複製到javascript數組中。 JavaScript正在PHP文件中使用。它在PHP代碼中得到了迴應,所以當我嘗試在javascripy中創建一個新數組並將它分配給它時,它給了我一個錯誤。數組到字符串的轉換。有人能幫我解決這個問題嗎?將PHP數組複製到javascript數組中

mysql_select_db("cerebra", $con); 
$sql="select name from details order by download desc limit 20"; 
if (!mysql_query($sql,$con))`enter code here` 
    { 
    die('Error: ' . mysql_error()); 
    } 
$query=mysql_query($sql,$con); 
$names=array(); 
while($row=mysql_fetch_array($query)) 
    { 
$names[]=$row[0]; 
    } 

這裏$名字是我想在JavaScript中使用

然後我贊同我的PHP代碼本身內部的JavaScript數組..:

function makeRequest() { 
    var d = document.getElementsByName(\"d\")[0].value; 
    var request = gapi.client.drive.files.list(); 
var newnames = new Array(); 
    newnames=$names; 
    request.execute(function(resp) 

{   
    for (i=0; i<resp.items.length; i++) { 
     var titulo = resp.items[i].title; 
     var fechaUpd = resp.items[i].modifiedDate; 
     var userUpd = resp.items[i].lastModifyingUserName; 
     var userEmbed = resp.items[i].embedLink; 
     var userAltLink = resp.items[i].alternateLink; 
     var download = resp.items[i].webContentLink; 
     var hold=\"Download\"; 
     var flag=0; 

     <!-- var fileInfo = document.createElement('li'); 
     <!-- fileInfo.appendChild(document.createTextNode('TITLE: ' + titulo + ' - LAST MODIF: ' + fechaUpd + ' - BY: ' + userUpd +' url: ' + hold.link(download)));     
     <!-- document.getElementById('content').appendChild(fileInfo); 
     <!--for (var i=0;i<newnames.length;i++){ 
    <!-- if(newnames[i].toString() == titulo){ 
     document.write(titulo + \"&nbsp;\"); 
     document.write(hold.link(download) + \"<br>\"); 
     <!--flag=1; 
    <!-- } 
     <!--} 
     } 
     <!--if(flag!=1){ 
     <!--document.write(\"not found!\"); 
     <!--} 
});  
} 

這裏在JavaScript我試圖將php數組轉換爲javascript數組,但它不起作用

+3

'' – DCoder 2013-02-20 06:35:55

+0

而且,最常見的方法是交換JSON或XML字符串,然後解析它們。 – Yang 2013-02-20 06:36:25

+0

看看這個鏈接..http://stackoverflow.com/questions/5618925/convert-php-array-to-javascript-array – sasi 2013-02-20 06:39:17

回答

6

例1:

<script type='text/javascript'> 
<?php 
$php_array = array('he','hi','hello'); 
$js_array = json_encode($php_array); 
echo "var javascript_array = ". $js_array . ";\n"; 
?> 
</script> 

注:您可以使用PHP的json_encode()函數 PHP數組轉換成JavaScript。

查看這個convert php array to java script array欲瞭解更多信息。

例2:

PHP代碼:

$arr = array(1,2,3,4,5,6,7); 
$script = '<script>var newArr = new Array(' . implode(',', $arr) . ');</script>'; 
echo $script; 

HTML代碼:

<script> 
function doOnchange(arr){ 
    alert(arr.length); 
} 
</script> 
<form name="frm"> 
    <select name="sel1" onchange="doOnchange(newArr);"> 
     <option>1</option> 
     <option>2</option> 
     <option>3</option> 
    </select> 
</form> 

結帳一些更多的鏈接,

How to Convert PHP Multidimensional Array to Javascript Object (using jQuery)

array2json() - Convert PHP arrays to JSON

json_encode pass php array to javascript

這可能幫助你。

+0

傢伙們正在迴應PHP代碼中的整個javascript有沒有什麼辦法可以在echo本身內部做到這一點? – user2038580 2013-02-20 06:56:42

+0

@ user2038580如果您嘗試使用任何代碼,請將其發佈以幫助我們更好地理解。 – 2013-02-20 07:01:24

0

看看json_encode()函數。來自網站的修改示例:

<?php 
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 

echo 'var js_object = '.json_encode($arr).';'; 
// outputs: var js_object = {"a":1,"b":2,"c":3,"d":4,"e":5}; 
?> 
-1

如果其單個或簡單數組,您可以從PHP數組中手動​​構建javascript數組。但它不是一個好方法。我會建議使用json或xml方式。

<?php 
    $myArr = array(1,2,3,4,5); 
    ?> 
<script> 
    var myArr = new Array(); 
    <?php 
    for($i=0;$<count($myArr);$i++) { ?> 
    myarr[<?php echo $i ?>] = <?php echo $myArr[$i] ?>; 
    <?php } ?> 
    ?> 
</script> 
+0

夥計們正在迴應PHP代碼中的整個JavaScript有沒有什麼辦法可以在echo本身內部做到這一點??? – user2038580 2013-02-20 06:58:15