php - 将 PHP 变量作为 Ajax 传递回原始页面上的 JavaScript 变量

标签 php javascript html ajax onchange

我有一些 Ajax,它将一个 javascript 变量传递给 getfirstvals.php,然后它对 DB 执行它的操作,并根据我输入的 javascript 变量回显一个值表。我现在想将这些正在回显的 PHP 变量传回发送 javascript 的原始页面,以便将它们转换为 javascript 变量以进行计算。我不确定该怎么做。

以下是它目前的运作方式。

用于选择值的范围“ slider ”:

echo "<input id='slider' type='range'
min=\"$vartime[0]\" max=\"$timemax\" value=\"$vartime[0]\" step='any' />
<span id='range'> </span>"

……

    selectslider.onchange=function changecolour(){ 
    showValue(selectslider.value)

.....

<script type="text/javascript">
function showValue(str) {
if (str == "") {
    document.getElementById("datatable").innerHTML = "";
    return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("datatable").innerHTML = xmlhttp.responseText;
    }
}
if (floorchoice!=0 && floorchoice!=1){
    if (floorchoice==2)
    {
    xmlhttp.open("GET", "getfirstvals.php?q=" + str, true);
    xmlhttp.send();

……

这会将“q”发送到 getfirstvals.php,它会在 th DB 中找到与 q 匹配的值,并在与它相同的行中回显所有值。这样,随着 q 的变化,回显值也会发生变化。正如我上面提到的,我希望这些值不仅被回显,而且被传回原始页面上的 javascript 变量,然后可以用于计算。以下是我所说的被回显的值的意思:

        echo "<td>" . $FFlrOpenPlanTemp . "&#8451</td>";
    echo "<td>" . $FFlrPCRoomTemp . "&#8451</td>";
    echo "<td>" . $FFlrStudyRm6Temp . "&#8451</td>";
    echo "<td>" . $FFlrStudyRm8Temp . "&#8451</td>";    

最佳答案

看看JSON . PHP 有一个函数:json_encode这将采用 PHP 数据对象(即数组,但不一定是数组)并将其编码为 javascript 对象概念。

然后在您的 JS 中您可以求值(提示:不要使用 eval,现代浏览器有 json 解析器)以将 JSON 数据转换为 Javascript 对象。

示例

如果我在 PHP 中有以下数组:

$array = array( "test1"=> 1, "test2"=> 2, 3, array( 4, 5, 6 ));

然后我json_encode 那个数组,最后得到以下字符串:

{"test1":1,"test2":2,"0":3,"1":[4,5,6]}

这就是您返回给 JS 的内容(又名回显)。您可以通过 Javascript 中的 native 解析函数 JSON.parse 来解析它:

var obj = JSON.parse(phpReturnStr);

。您有一个从 PHP 传入的 JS 对象。

关于php - 将 PHP 变量作为 Ajax 传递回原始页面上的 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7083998/

相关文章:

javascript - 这个与原型(prototype)的链接?出于命名空间的目的

javascript - 将 DIV 导出为 JPG/PNG - html2canvas 不起作用

javascript - 浏览器是否支持不同的 HTML5 模式正则表达式功能?

html - 设置没有底部滚动的溢出滚动

javascript - 如何制作这样的砌体网格?

php - 将变量发送到 Bootstrap 模式

PHP 编译

javascript - ajax post请求后范围变量没有改变

javascript - 什么时候可以从 Javascript 输出 HTML 代码?

php - 从表中选择所有 ORDER BY 另一个表列,匹配主键