![](/img/trans.png)
[英]Render html components changing its variables with javascript after ajax call
[英]changing php variables with javascript after API call
我最近在挣扎。 我有一些JavaScript代码调用API,然后根据API响应收集数据库数据,这是我的操作方式:
<?php
$class = MyClass();
?>
<div id="display"></div>
<span id="foo"></span>
<script type="text/javascript">
var p = document.getElementById("foo");
p.onclick = function() {
// API Call
$.post("CallAPI.php", {
parameter1: someValue,
parameter2: someOtherValue,
}).done(function (data) {
json = JSON.parse(data);
response = json.node.subNode.field;
// Database Fetch
$.post("fetchDataFromDB.php", {
parameter: response,
}).done(function (data) {
// what do I do ?
});
});
};
</script>
最重要的是,我有一个实例化的PHP类,我想根据从数据库中获取的数据进行修改,然后从该类的前端输出一些变量。
为了简单起见,假设该类是这样的:
class myClass
{
private $_variable;
public function __construct(){
$this->_variable = 'init';
}
public getVariable(){
return $this->_variable;
}
public setVariable($variable){
$this->_variable = $variable;
}
}
我正在寻找的是一种修改$_variable
的方法,该方法会影响$_variable
数据库获取的返回值,然后在显示<div>
显示$_variable
的值。
由于PHP的工作方式,因此这是不可能的。 PHP脚本被加载到解释器中,被执行,然后被卸载。 以下说明并非100%准确,但可以帮助您更好地理解:
CallAPI.php
进行API调用
CallAPI.php
了魔力,返回了可能的输出, 脚本停止了 。 fetchDataFromDB.php
CallAPI.php
中存在的每个值都不再存在 fetchDataFromDB.php
做到了神奇,返回了可能的输出, 脚本停止了 。 开始编码时,这是一个令人困惑的概念,但是PHP是syncronice(首先是A,然后是B,然后是C,然后是完成),而javascript是异步的(没有给ABC的给定命令,有些可能立即触发,有些等待一些事情发生,例如点击)。
理解您想要的内容有点困难,因为您的变量名不好( parameter1
根本不是描述性的 ),所以我不能给您更准确的答案。
在问题中指定的情况下,如果您不使用javascript中的值,则可能简单的第一个php脚本直接调用了第二个php脚本。 也快很多。
如果您描述的是某种情况,则需要在javascript中获得*原因*的结果,您可以将值存储在会话变量或数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.