所以我正处于一个相当棘手的问题中。我快要走了 - 太近了! - 解决它但不完全在那里。我已经看过很多例子,但没有一个像我想要的那样。
在php页面myreqpdo.php上,我从MySQL表中恢复了一些数据行并将它们存储在一个二维数组中。在我的页面index.php上,我需要通过JavaScript访问这个数组,并在将它发送到我需要填充的内容之前稍微玩一下。
这是myreqpdo.php:
$locWanted = $_POST['searchTerm'];
echo json_encode(getVillesCPs($locWanted));
function getVillesCPs ($searchTerm) {
// code to access DB here
return $resultats;
}
我使用jQuery找到了this example,但这是一个实例,其中一个人只想将列表直接插入代码而不需要进一步操作:
<html>
<head>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'></script>
</head>
<body>
<!-- this UL will be populated with the data from the php array -->
<ul></ul>
<script type='text/javascript'>
$(document).ready(function(){
/* call the php that has the php array which is json_encoded */
$.getJSON('json_encoded_array.php', function(data) {
/* data will hold the php array as a javascript object */
$.each(data, function(key, val) {
$('ul').append('<li id="' + key + '">' + val.first_name + ' ' + val.last_name + ' ' + val.email + ' ' + val.age + '</li>');
});
});
});
</script>
</body>
</html>
这对我不起作用,因为此功能是基于搜索参数触发的功能。我需要类似下面的伪代码:
<script>
var myArray = {code to recover PHP array};
// manipulations for myArray here, using data to fill values of items on page
</script>
我一直认为答案就在我的鼻子底下,但我真的没有看到像我想要的那样的例子!有什么想法吗?
答案 0 :(得分:1)
您不需要jQuery在您的javascript代码中插入PHP中的数组,只需将其直接插入需要的地方:
<script>
var myArray = <?php echo json_encode(getVillesCPs($locWanted)); ?>;
// manipulations for myArray here, using data to fill values of items on page
</script>
请注意,在此代码之前,您必须在PHP代码中为$locWanted
var设置一个值,其他的getVillesCPs
将使用空参数调用。
getVillesCPs
是在另一个PHP文件中定义的,所以在调用它之前将它包含在你的主页面中(假设你的主页是一个PHP文件):
<?php
//including the PHP file containing the function
include 'myreqpdo.php';
//setting a value for $locWanted, used then in the rest of the page
$locWanted = 'Paris';
?>
<script>
var myArray = <?php echo json_encode(getVillesCPs($locWanted)); ?>;
// manipulations for myArray here, using data to fill values of items on page
</script>
删除myreqpdo.php
中的第2行代码,在调用函数之前,您不希望echo
任何内容。