0

基本上我所拥有的是,有一个索引文件,它链接到一个 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; ?>

但这也不起作用。

任何建议或想法如何让它发挥作用?

4

3 回答 3

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/

于 2013-08-07T15:11:13.557 回答
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中

不是最优雅的解决方案,但如果您无法使其他任何工作正常进行,则相当简单。

于 2013-08-07T15:25:49.650 回答
-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;

然后在使用 jquery 的 javascript 页面中执行以下操作:

function myCallBackFunction(data){
    alert(data.numrows);
}
$.getJSON('server.php',myCallBackFunction(data));

希望这可以帮助。

编辑为使用数组和 json_encode

于 2013-08-07T15:17:41.923 回答