我有一些 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 . "℃</td>";
echo "<td>" . $FFlrPCRoomTemp . "℃</td>";
echo "<td>" . $FFlrStudyRm6Temp . "℃</td>";
echo "<td>" . $FFlrStudyRm8Temp . "℃</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/