使用 js .innerHTML 更新 PHP 变量 [重复]
Posted
技术标签:
【中文标题】使用 js .innerHTML 更新 PHP 变量 [重复]【英文标题】:Update PHP variable with js .innerHTML [duplicate] 【发布时间】:2012-09-09 22:09:54 【问题描述】:可能重复:How do I programatically set the value of a select box element using javascript?
我正在尝试在选择选项已更改时更新一个表的结果。以下测试代码工作正常。但是当我尝试更新查询时,它不起作用。我猜它与“回声”有关,但我无法弄清楚。谢谢。
<script type="text/javascript">
function ChangeText(value)
document.getElementById("p1").innerhtml=value;
</script>
<select onchange="ChangeText(value)">
<option value="ONE">one</option>
<option value="TWO">two</option>
<option value="THREE">three</option>
<option value="FOUR">four</option>
</select>
<?php
$variable1 = '<p id="p1">place holder</p>';
echo $variable1;
?>
什么不起作用:
document.getElementById("country").innerHTML=value;
$country = '<p id="country">United States</p>'
$result = mysql_query("SELECT * FROM statistics WHERE (Country='$country')");
当页面加载时,结果是一个空白表,我原以为“美国”是默认值。当我从下拉菜单中选择某些东西时,它什么也不做。
【问题讨论】:
【参考方案1】:PHP 在用户看到页面之前在服务器端执行。因此,一旦用户查看页面,PHP 就完成了执行。
因此,您不能“使用 Javascript 更新 PHP 变量,因为 Javascript 在客户端运行,这发生在 PHP 完全执行完之后。
您应该查看AJAX。
【讨论】:
我知道这一点。但是在我的测试代码中发生了什么,我能够使用选择值更新 $variable1 并在不重新加载页面的情况下回显它?我希望我可以将它应用到我的查询中。 为了使 Javascript 能够以任何方式与 PHP 进行交互,它必须调用回服务器。 PHP 只存在于服务器上,而不存在于客户端上。因此,AJAX 将允许您获取下拉列表的值并将其发送回服务器上的 PHP 脚本,这样您就可以进行查询,而无需重新加载页面。相信我……看看 AJAX。这正是您所需要的,它并不复杂,而且我相信几乎每个 Web 开发人员都会在某个时候使用它,而且经常使用它。【参考方案2】:我认为您对服务器端脚本与 javascripting 的工作方式有些混淆。 PHP 代码不在客户端运行。 PHP 代码由您的服务器执行,结果(所有回显的内容 + HTML 标记)被发送到客户端的浏览器。如果您想动态更新页面,则必须使用表单并重新加载页面,或者使用 AJAX。
【讨论】:
以上是关于使用 js .innerHTML 更新 PHP 变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
<textarea> 值,与 innerHTML....关于 PHP [重复]
innerHTML 使用 php include 语句更改 DIV 内容的正确语法