2017-05-16 42 views
0

中设置下拉值我有下拉菜单,当其中的任何选项被选中时,应该填充另一个下拉值。根据另一个下拉值在php

我需要检查第一个下拉值与一些变量,并基于该条件其他下拉值基于它填充。

我的第一下拉,

<select id="mySelect" name="name"> 
     <option>Select any city</option> 
     <?php foreach ($data as $c) { ?> 
     <option><?php echo ($c[0]['value']); ?></option> 
     <?php } ?> 
    </select> 

上午流汗使用jquery上述下拉选择的值,但我需要在PHP

jQuery("#mySelect").change(function() { 
     ... 
    }); 

对于第二下拉,

<select> 
...... 
if ($myPhpVar == $data[1][$j][$i]['c_name']){ ?> 
    <option><?php echo $data[1][$j][$i]['a_name']; ?></option> 
    <?php } 
.... ?> 
</select> 

这里$myPhpVar应该是第一个下拉选定的值,我需要将它与一些数据进行比较。

如何获得第一个下拉值,并将其设置为$myPhpVar

UPDATE:

管理下拉使用jQuery:

jQuery("#mySelect").change(function() { 
    var end = this.value; 
    var firstDropVal = jQuery('#mySelect').val(); 
    <?php for($j=0; $j<count($data[1]); $j++){ 
     //print_r ($data[1][$j]); 
     for($i=0; $i<count($data[1][$j]);$i++){ 
      if ($myPhpVar == $data[1][$j][$i]['city_name']){ 
      echo $data[1][$j][$i]['area_name']; ?> 
      jQuery('#dsad').append("<option><?php echo json_encode($data[1][$j][$i]['area_name']); ?></option> ") 
      <?php 
      } 
     } 
    } ?> 
    console.log(end); 
    console.log(firstDropVal); 
}); 

对于第二个下拉但是没有得到下拉值。

+1

你必须发送一个AJAX请求,如果你想修改第二个下拉* *后的用户选择了第一个选项。 –

+0

你不能直接使用PHP,而是你将需要1)使用完整的JavaScript来处理这个问题,或者2)提交一个新的http请求来让php生效或者3)使用ajax – hassan

+0

我该如何处理这个使用javascript? @hassan – Mann

回答

0

您必须编写一个网络服务。创建一个新页面,当第一个下拉菜单(使用AJAX)发生变化时将会调用该页面。 将选定值传递给该页面以JSON(可能)发送响应。 将响应设置为其他组件。

jQuery("#mySelect").change(function() { 
    var val = jQuery(this).val(); 
    jQuery.ajax({ 
      url: 'your_new_page.php', 
      data: 'dropvalue='+val, 
      processData: false, 
      type: 'GET', 
      dataType:'json', 
      success: function(response){ 
      //load json data from server use it 
      }, 
      error: function(jqXHR, textStatus, errorThrown) { 
       //there is an error 
      } 
    }); 
}); 

your_new_page.php

if(isset($_GET['dropvalue'])) { 
    $myPhpVar = $_GET['dropvalue']; 
    //do what you want and return the response 
} else { 
    //value not submitted, send an error 
} 
相关问题