使用 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 内容的正确语法

innerHTML 没有正确更新

PHP:如何获取当前的 innerHTML?

js获取地址栏参数document.getElementById("").innerHTML

在 InnerHTML 页面加载时更新的简单 JavaScript 循环