我正在尝试使用MYSQL查询数据,
然后使用jQuery的自动完成功能将其链接到<input>
。
我还不习惯在Javascript中使用PHP,所以我不确定如何获取内容
在一个数组内。当每个console.log
我的PHP用于调试时,它会显示Array
。
这是我的JS代码:
var SOMETHING = ["<?php echo $SOMETHING; ?>"];
//console.log(SOMETHING);
$( "#input_add_album" ).autocomplete({
source: SOMETHING
});
这是我的PHP代码:
global $SOMETHING;
$SOMETHING = array();
$sql = "
select B from A
";
$stmt = $dbh->query($sql);
$result = $stmt->fetchAll();
foreach ($result as $SOME_CONTENT) {
array_push($SOMETHING, $SOME_CONTENT["SOME_CONTENT"]);
}
答案 0 :(得分:0)
这个问题已经过时了,但我将讨论两个最有可能的解决方案。你遇到的问题是你试图回应一个数组以查看它的内容,这是不可能的。 JavaScript解释器也不可能解释PHP。 PHP处理主机上的.php文件,然后将它们提供给客户机。客户端永远不应该看到任何PHP,它不知道如何处理它。因此,从服务器运行PHP文件后的最终结果必须是格式良好的文档,以符合浏览器可以处理的文件类型的指导,在本例中为html和JavaScript。因此,为了使用JavaScript将PHP变量的内容记录到控制台,它必须采用JavaScript理解的形式。幸运的是,有一种JavaScript可以理解并且大多数其他语言支持的格式。将任何字符串,数字,数组或关联数组移动到JS的方法是使用JSON。 JavaScript对象表示法。请记住,PHP中的关联数组成为JavaScript中的对象。
$regular_array = json_encode(array( 'words', 'to', 'send' ));
$php_assoc = json_encode(array(
'assoc' => 'arrays',
'become' => 'JavaScript',
'objects' => array(
'this','will','be',1,array()
),
));
echo "
<script>
/** Check that window.console.logs isn't undefined, if we were just
* using JavaScript I wouldn't be so verbose. Since our PHP variable is
* traveling so far from home, I want to make sure we get the right address
*/
if (window && 'console' in window ) {
window.console.log({$regular_array});
window.console.log('JS object with array inside', {$php_assoc});
}
</script>";
这会将值记录到浏览器控制台。这相当于使用常规的旧JavaScript将以下数组和对象记录到控制台。
var regularArray = [ 'words', 'to', 'send' ];
var phpAssoc = {
assoc : 'arrays',
become : 'JavaScript',
objects : [ 'this', 'will', 'be', 1, [] ]
};
在Google Chrome中,phpAssoc对象在控制台中如下所示。它可以像任何其他JavaScript对象一样完全展开,查看和使用。
Object {assoc: "arrays", become: "JavaScript", objects: Array[5]}
*在这个例子中,我没有将PHP输出保存到JavaScript变量中,但您可以看到如何将值注入console.log,这样您就可以使用echo "var something = {$some_other_thing};";
<执行相同的操作/ p>