2016-01-13 10 views
4

Это моя главная страница, где я выбираю поле опций.создание поля динамического выбора при выборе другого поля выбора

opt1.php:

<html> 
<div> 
    <select id="mn" onchange = "show(this.id)" > 
    <option value="3">hello</option> 
    <option value="4">hiii</option> 
    <option value="5">byee</option> 
    </select> 
</div> 
<?php include 'OPT2.php'?> 
</html> 

Это мой Javascript, где я получаю значение сверху выбрать и перейти к opt2.php

function show(s1){ 
    var s1 = document.getElementById(s1); 
    var ch = s1.value; 
    $.post('OPT2.php', {variable: ch}); 
} 

Это мой opt2 .php, чтобы отобразить дополнительный выбор.

<?php 
    $con = @$_POST['ch']; 
    echo "SELECT MODEL:<select id=sb name=sb >"; 
    echo "<option name=$con>$con</option>"; 
    echo "</select>"; 
?> 

Фактически это не приводит к предполагаемому результату.

Есть ли логическая ошибка или ошибка обработки?

+1

Вы отправляете '{variable: ch}' где 'variable' является ключом, а не' ch', поэтому он должен быть '$ con = $ _POST ['variable'];' не '$ con = $ _POST ['ch']; ' – Sean

ответ

0

вам нужно сделать Ajax вызов opt2.php получить, что данные так что ваш opt1.php должен выглядеть

<html> 
<div> 
      <select id="s1" onchange = "show(this.id)" > 
       <option value="3">hello</option> 
       <option value="4">hiii</option> 
       <option value="5">byee</option> 
      </select> 
      <select id="s2"> 
       <option>--</option> 
      </select> 
     </div> 
     <?php include 'OPT2.php'?> 
</html> 

и ваш Javascript

<script type="text/javascript"> 
    $("#s1").change(function(){ 
    $('#s2').find('option').remove().end(); //clear the city ddl 
    var block_no = $(this).find("option:selected").text(); 
    var s1 = document.getElementById(s1); 
    var ch = s1.value; 
    //do the ajax call 
    $.ajax({ 
     url:'OPT2.php', 
     type:'GET', 
     data:{variable:s1}, 
     dataType:'json', 
     cache:false, 
     success:function(data) 
     { 
     //data=JSON.parse(data); //no need if dataType is set to json 
     var ddl = document.getElementById('s2');      
     for(var c=0;c<data.length;c++) 
       {    
       var option = document.createElement('option'); 
       option.value = data[c]; 
       option.text = data[c];       
       ddl.appendChild(option); 
       } 

    }, 

     error:function(jxhr){ 
     alert("Pls Reload the page"); 
    } 
    }); 
}); 

Смежные вопросы