将PHP变量作为Ajax传递回原始页面上的JavaScript变量
Passing PHP variables back to JavaScript variables on original page as Ajax
我有一些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 . "℃</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的内容(也就是echo out)。你可以通过Javascript中的本地解析函数JSON.parse
来解析它:
var obj = JSON.parse(phpReturnStr);
瞧。你有一个从PHP传入的JS对象
首先,您可以使用Javascript库使其更简单并跨浏览器。然后,我建议您通过json_encode()
将变量从PHP传递到JS。只需要花一分钟的时间来看看jQuery是如何。
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- 阻止$scope变量副本侦听其原始副本
- 在 JavaScript 中是否有原始变量的用途
- 两个函数使用相同的变量,都不会覆盖其原始变量
- 在 JavaScript 中访问原始全局变量和属性
- 为什么原始变量的行为类似于对象
- 变量不断重置为其原始值
- 变量在操作新实例后失去原始值
- Javascript变量恢复为原始变量
- 如何在 for 循环中维护迭代变量的原始值,该循环设置事件调用,其中迭代值是函数的一部分
- 为什么Google闭包编译器在原始命名空间为空的情况下向全局命名空间添加变量
- js更改变量会影响到原始变量
- highcharts系列删除功能删除所有原始系列数据(即使存储在新变量中)
- 如何在不影响AngularJS中原始变量的情况下操作视图值
- 在JavaScript中更改局部变量会影响具有不同名称的原始全局变量
- 将Mysql查询结果传递给javascript,然后使用原始变量调用函数
- 附加在字符串中的Javascript变量不会被替换'的原始值
- 什么时候我应该使用变量而不是原始值
- 通过jQuery.fn.data()分配变量将保留对原始标记值的引用
- JavaScript's reverse()总是改变原始变量吗?