我想将PHP数组复制到javascript数组中。 javascript正在PHP文件中使用。它在PHP代码中得到了回应,所以当我尝试在javascripy中创建一个新数组并将PHP数组分配给它时,它给了我一个错误。数组到字符串转换。有人可以帮我这个。
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];
}
这里$ names是我想在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 + \" \");
document.write(hold.link(download) + \"<br>\");
<!--flag=1;
<!-- }
<!--}
}
<!--if(flag!=1){
<!--document.write(\"not found!\");
<!--}
});
}
这里的javascript我试图将php数组转换为javascript数组,但它不能正常工作
答案 0 :(得分: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
这可能对你有所帮助。
答案 1 :(得分: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};
?>
答案 2 :(得分:-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>