编辑:
解决了。有人评论了答案,但随后将其删除。令人尴尬的是,通过在两个 json_encode 行后添加分号解决了这个问题。我仍然不知道为什么 string1 在没有结束分号的情况下工作而 string2 没有,但它工作,所以......成功?
/编辑
嗨……这里是相当菜鸟的程序员。
在 PHP 中,我从我的数据库中获取了两个数组。这工作正常。然后我将每个数组内爆成一个字符串。这也很好用。
稍后在同一个文件中,在我的代码的 javascript 部分(以 jQuery 为特色),我这样做:
string1 = <?php echo json_encode($string_1);?>
string2 = <?php echo json_encode($string_2);?>
编码 string1 可以完美地工作……只要我完全注释掉 string2 行。它杀死了我的页面。
我试过确保我的字符串是 utf8 编码的。我已经尝试确保没有反斜杠或其他有问题的字符。目前,我有一些设计为尽可能没有问题的虚拟代码......仍然无法正常工作。
这是它的骨架版本。
PHP:
$array1 = array();
$array2 = array();
$i = 1;
while($row = mysqli_fetch_assoc($query_result)) {
$array1[$i] = $row['column1'];
$array2[$i] = $row['column2'];
$i++;
}
$string1 = implode(",", $array1);
$string2 = "oh_come_on_why_doesnt_this_work"; // implode(",", $array2);
和 JS/HTML/JQuery:
var string1;
var string2;
$.getScript("js/set_functions.js", function(){ loadedScript() });
function loadedScript() {
string1 = <?php echo json_encode($string1);?>
string2 = <?php echo json_encode($string2);?>
// string2 = <?php echo "'" . $string2 . "'";?> doesn't work either
alert(string1); // works if I comment out both string2 = … lines
alert(string2); // displays "undefined" if the first string2 = … line is commented…
// …out, doesn't display at all if it isn't
}
卡住请帮忙。
让我知道您是否需要查看更多我的代码,或者我可以做些什么来帮助改善这个问题。谢谢。
PS:我不是一个好的程序员,我知道。请不要纠正我的其他不良编码习惯,以帮助解决此问题。谢谢!
编辑:对不起,作为对 Joe Fraumbach 的回应,这是我复制粘贴的错误。我实际上已经声明了 $array2 = array();