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

Passing PHP variables back to JavaScript variables on original page as Ajax

本文关键字:变量 原始 JavaScript PHP Ajax      更新时间:2023-09-26

我有一些Ajax将javascript变量传递给getfirstvals.php,然后与DB一起做它的事情,并根据我输入的javascript变量返回值表。我现在想要传递回这些PHP变量的回声,回到原来的页面,javascript正在发送为了将它们转换成javascript变量做计算。我不知道该怎么做。

到目前为止,它的工作原理如下:

一个范围"滑块"来选择值:

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,该函数在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的内容(也就是echo out)。你可以通过Javascript中的本地解析函数JSON.parse来解析它:

var obj = JSON.parse(phpReturnStr);

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

首先,您可以使用Javascript库使其更简单并跨浏览器。然后,我建议您通过json_encode()将变量从PHP传递到JS。只需要花一分钟的时间来看看jQuery是如何。