基本上我所拥有的是,有一个索引文件,它链接到一个JS文件,然后拉入一个PHP文件。
所以我在PHP文件中(以及其他代码):
echo " <script type='text/javascript'>var paging = [ ";
echo "{";
echo "numrows:'" . number_format($numrows) . "',";
echo "pagenum:'" . number_format($pagenum) . "',";
echo "maxpage:'" . number_format($maxpage) . "',";
echo "record_min:'" . number_format($record_min) . "',";
echo "record_max:'" . number_format($record_max) . "'";
echo "}];</script>";
然后,在JS文件中我使用ajax:
req.open("GET", "server.php", true);
并且在readystatechange中我需要检索从php文件中看到的分页变量,因为它包含来自数据库的数据。
在JS文件中,我尝试使用变量而不是echo
var m=<?PHP echo $paging; ?>
但这也不起作用。
有关如何使其发挥作用的任何建议或想法?
答案 0 :(得分:3)
我使用JSON而不是JS。您应该能够将PHP数组传递给json_encode函数。请参阅:http://php.net/manual/en/function.json-encode.php
此外,在PHP方面,您可能希望修改响应标头以指示响应消息正文是JSON:
header( 'Content-Type: application/json' );
然后,使用jQuery从服务器获取JSON:http://api.jquery.com/jQuery.getJSON/
答案 1 :(得分:0)
如果您没有直接使用JSON(缩小为两个变量),另一种可能的解决方案
echo '<div id = "numrows">'. number_format($numrows) . '</div>';
echo '<div id = "pagenum">'. number_format($pagenum) . '</div>';
在php文件中
req.onreadystatechange = function(){
if (req.readyState == 4 && req.status == 200){
document.getElementById('return').innerHTML = req.responseText;
}
}
req.open("GET", "server.php", true);
req.send();
n["numrows"] = document.getElementById("numrows").innerHTML;
e = document.getElementByID("numrows");
e.parentNode.removeChild(e);
n["pagenum"] = document.getElementById("pagenum").innerHTML;
e = document.getElementByID("pagenum");
e.parentNode.removeChild(e);
在javascript中
<div id = "return" style="display: none;"></div>
在html中
不是最优雅的解决方案,但如果您无法获得其他任何工作,则可以相当直接地使用。
答案 2 :(得分:-2)
好吧因为jQuery让这很容易,这是我的例子:
$paging = array(
"numrows" => number_format($numrows),
"pagenum" => number_format($pagenum),
"maxpage" => number_format($maxpage),
"record_min" => number_format($record_min),
"record_max" => number_format($record_max)
);
$output = json_encode($paging);
header( 'Content-Type: application/json' );
echo $output;
然后在你的javascript页面中使用jquery执行此操作:
function myCallBackFunction(data){
alert(data.numrows);
}
$.getJSON('server.php',myCallBackFunction(data));
希望这有帮助。
编辑使用数组和json_encode