【问题标题】:how do i pass the php parameter using Javascript我如何使用 Javascript 传递 php 参数
【发布时间】:2011-01-16 08:05:51
【问题描述】:

我创建了一个 html 表单。它由几个下拉列表组成(国家、州、城市、地区)

国家/地区的下拉列表如下所示。

Select Countries : <select name="countries" id="countries" onchange="showStates()">
<?php
foreach($crud->getAll('countries') as $countries) 
{ 
?>
    <option value="<?php echo $countries['id']; ?>"><?php echo $countries['name']; ?></option>
<?php } ?>
</select>

状态的下拉列表如下所示。

Select State : <select name="states">
<?php
foreach($property->getStatesFromCountryId($countryId) as $states) 
{ 
?>
    <option value="<?php echo $states['id']; ?>"><?php echo $states['name']; ?></option>
<?php } ?>
</select>

国家下拉列表将从数据库中获取所有国家并填充它。但在州下拉列表中,它需要从国家值动态传递参数。

为此,我想实现以下目标

1) 在 JavaScript countryId 变量中保存国家/地区下拉列表中的国家/地区 ID。代码应该看起来像这样var countryId = document.getElementById("countries").value;

2) 将参数从 countryId 变量传递给foreach($property-&gt;getStatesFromCountryId($countryId) as $states)

如何实现?

【问题讨论】:

  • 这需要完整或异步回发。 PHP 代码仅在服务器端进行处理。

标签: php javascript


【解决方案1】:

我能想到的三种方法:

  1. 将每个国家的所有状态存储在一个大 JS 文件中作为 JS 对象。然后在国家下拉菜单的 onChange 事件期间阅读此内容。

  2. 在服务器端存储所有状态,使用 AJAX (XMLHttpRequest) 动态检索所选国家/地区的状态。

  3. 在 onChange 中提交您的表单,传递一个隐藏变量以向您的服务器端脚本表示它应该只填充 State 下拉列表,而不是进行其余的验证。

【讨论】:

    【解决方案2】:

    看看这个问题:php dropdown menu population

    【讨论】:

      【解决方案3】:

      关于 kander 解决方案的一些想法:

      1. 很丑,但是可​​以离线使用。你可以用 PHP 生成大的 JS 对象
      2. 这可能是最好的解决方案。您可以编写非常小的 PHP 脚本,例如 json_encode($crud-&gt;getAll(isset($_GET['country']? $_GET['country'] : ''));,并准备好 JavaScript 对象以立即创建第二个下拉列表。
      3. 这是第 2 次的故障保护。

      【讨论】:

        猜你喜欢
        • 2015-09-05
        • 1970-01-01
        • 2012-10-16
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        • 2014-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多