javascript和PHP变量传递

时间:2011-09-10 18:01:01

标签: php javascript jquery

我有两个选择框,第二个选择框值取决于第一个选择框。所以基本上我要做的是,在用户在第一个选择框上进行选择之后,它将把第一个选择框的这个值存储为变量。然后它将查询我的数据库,根据第一个选定的值填充第二个选择框。问题是,如何将第一个选择框中的var传递给PHP?我读过其他帖子,人们说这是不可能的,但如果是,那么人们怎么做呢? AJAX?

7 个答案:

答案 0 :(得分:3)

如果我理解正确,那么是的,使用AJAX确实是你唯一的选择。

答案 1 :(得分:1)

实际上,您可以使用AJAX调用类似'getSelectionData.php?data ='+ select1.value的内容,它会根据第一个选择框中的选择返回JSON数据数组。然后解析数据并将其输入第二个选择框。

答案 2 :(得分:1)

onchange事件侦听器添加到第一个选择框:

document.getElementById("select1").addEventListener("change", function(ev){
   var yourstoredvariable = this.value;
   someFunctionThatCallsAjax(yourstoredvariable);
}, true);

答案 3 :(得分:0)

您将在第一个<select>上有一个onchange事件,该事件将使用Ajax查询服务器,其中包含所选<option>的值,该值将返回用于填充的<option>元素第二个<select>元素。

答案 4 :(得分:0)

  

问题是,如何将第一个选择框中的var传递给PHP?

我认为这里没问题 通常,使用GET方法的普通html表单 有什么关系呢?

答案 5 :(得分:0)

如果我看到你正确使用Jquery。所以你可以这样做:

$('#idOfSelectBox1').change(function(){
jQuery.ajax({
    type: "GET",
    url:"yourdomain.com/script.php",
    data:"selectBox:'"+$('#idOfSelectBox1').val()+"'",
    success:function(result){
        //do smth with the returned data
    }
});
});
在script.php中的

做你的魔法并回显你要传回js的内容

答案 6 :(得分:0)

我假设您有一个国家/城市下拉菜单,您可以通过两种方式实现,即良好的AJAX方式和糟糕的方式(更新时刷新页面),我将在jQuery中描述好方法,或者在至少我认为它很好。

这是客户端(即客户端)代码:

<select id="country">
  <option value="1">Canada</option>
  <option value="2">UK</option>
</select>
<select id="city" disabled="disabled"></select>
<script type="text/javascript">
  $('#country').change(function(){
      $('#city').load('/ajax-city.php', {id: $(this).val()});
  });
</script>

这是ajax-city.php代码(服务器):

<?php
$countryId = $_REQUEST['id'];
$cities = array(); // Get it from db, using mysql_query or anything you want to use
foreach($cities as $city) {
  echo "<option id=\"{$city['id']}\">{$city['name']}</option>";
}

PS。你需要在你的html代码中包含jQuery,当然把这两个文件放在同一个目录中(或更改$ .load路径)。

此特定代码未经过测试,我刚刚编写过。但这种方式通常对我很好。