错误传递php数组与json_encode到js处理程序
我声明php数组,我用查询中的字符串填充它们。 我必须将此数组传递给页面中元素的处理程序。 处理程序无法读取此数组。错误传递php数组与json_encode到js处理程序
PHP:
$names = $paths = $infos= []; $i = 0;
while($row = $result->fetch_row())
{
$names[$i]= $row[0];
$paths[$i]= $row[1];
$infos[$i]= $row[2];
$i++;
}
...
for($i = 1; $i < ($length/8)+1 ; $i++)//arrotonda per eccesso
{
$jsNames = json_encode($names);
$jsInfo = json_encode($infos);
$jsPaths = json_encode($paths);
//echo $jsNames."<br>";
//echo $jsInfo."<br>";
//echo $jsPaths."<br>";
?>
<a href="#" onClick="changePhoto(<?php echo $i.','.$jsNames.','.$jsInfo.','.$jsPaths ?>)" class="w3-bar-item w3-white w3-button"> <?php echo $i ?></a>
JS:
function changePhoto(num,names,paths,infos){ //nothing
}
浏览器错误:Uncaught SyntaxError: Unexpected token }
打开浏览器调试器: (function(event){changePhoto(2,[ })
回答:
你将不得不在这里引号中的问题。你的jsons将会有一些“在里面,你的html属性也被包含进来”。 因此改变
onClick="changePhoto(<?php echo $i.','.$jsNames.','.$jsInfo.','.$jsPaths ?>)"
到
onClick='changePhoto(<?php echo $i.','.$jsNames.','.$jsInfo.','.$jsPaths ?>)' // note the single-quotes here!
旁注:
你应该把这些行$jsNames = json_encode($names);
外循环,因为他们不会改变了。但是现在你多次做同样的工作。
以上是 错误传递php数组与json_encode到js处理程序 的全部内容, 来源链接: utcz.com/qa/264712.html