2012-06-04 2 views
0

Надеюсь, что весь мой дневной труд будет, по крайней мере, уже окончен. У меня есть 2 выпадающего ящика. После отправки у меня есть только первое поле выпадающего значка на странице . Мой второй раскрывающийся список зависит от значения, выбранного в первом раскрывающемся списке.Не удалось извлечь значение из второго динамически зависимого выпадающего списка

Это код Аякса в головной секции

<script> 
    function getXMLHTTP() { //function to return the xml http object 
      var xmlhttp=false; 
      try{ 
       xmlhttp=new XMLHttpRequest(); 
      } 
      catch(e) {  
       try{    
        xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       catch(e){ 
        try{ 
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
        } 
        catch(e1){ 
         xmlhttp=false; 
        } 
       } 
      } 

      return xmlhttp; 
     } 



     function getScreen(strURL) {   

      var req = getXMLHTTP(); 

      if (req) { 

       req.onreadystatechange = function() { 
        if (req.readyState == 4) { 
         // only if "OK" 
         if (req.status == 200) {       
          document.getElementById('screendiv').innerHTML=req.responseText;       
         } else { 
          alert("There was a problem while using XMLHTTP:\n" + req.statusText); 
         } 
        }    
       }   
       req.open("GET", strURL, true); 
       req.send(null); 
      } 

     } 
    </script> 

и это тело страницы

<form method="post" action="a.php" name="form1"> 
    <table width="60%" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
     <td width="150">Device Name</td> 
     <td width="150"><select name="device" onChange="getScreen('finddevice.php?device='+this.value)"> 
     <option value="">Select device</option> 
     <option value="1">Iphone 3</option> 
     <option value="2">Iphone 4</option> 
     <option value="3">Ipad </option> 
     <option value="4">android </option> 
      </select></td> 
     </tr> 
     <tr style=""> 
     <td>Screen</td> 
     <td ><div id="screendiv"><select name="screen"> 
     <option>Select Screen</option> 
      </select></div></td> 
     </tr> 
     </table> 
     <input type="submit" value="submit" /> 
    </form> 

Это называют страницу finddevice.php, которая имеет следующие коды

<? $device=$_REQUEST['device']; 
    $link = mysql_connect('localhost', 'root', ''); //changet the configuration in required 
    if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db('future'); 
    $query="select screen from screen where device_id=$device"; 
    $result=mysql_query($query); 

    ?> 
    <select name="screen"> 
    <option>Select Screen</option> 
    <? while($row=mysql_fetch_array($result)) { ?> 
    <option value><?=$row['screen']?></option> 
    <?php $row['device_id'] ?> 
    <? } ?> 
    </select> 

Его работа отлично и приведение значения из таблицы во второй раскрывающийся список при выборе значение из первого раскрывающегося списка. Но когда я отправляю данные, я могу получить доступ только к первому выпадающему значению в файле a.php с использованием метода $ _POST. Это означает, что я могу получить только значение $_POST['device'], но нет значения от $_POST['screen']. Пожалуйста, помогите мне.

ответ

1

В finddevice.php, строка 14 (как описано выше), вы, кажется, пропустили значение опции в 2 ниспадающего
Я имею в виду < значение параметра > должно быть что-то вроде < вариант значение = «1» >
начинка Try в ид или что-то уникальное в качестве значения для опций 2 ниспадающего
Если вы не заполните значения опций, второе падение вниз представит пустое значение для a.php

finddevice.php:

<?php 
    $device=$_REQUEST['device']; 
    $link = mysql_connect('localhost', 'root', ''); //changet the configuration in required 

    if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db('future'); 
    $query="select id, screen from screen where device_id=$device"; 
     //if screen table contains id field ... 
     //replace id with primary key or any unique identifier for screen table 
     //if there aint any primary key in "screen" table, use a field that is unique 
     //or create a primary key 
    $result=mysql_query($query); 
?> 
<select name="screen"> 
    <option>Select Screen</option> 
    <?php while($row=mysql_fetch_array($result)) { ?> 
    <!-- <option value><?=$row['screen']?></option> --> 
    <option value="<?php echo $row['id']; ?>"><?php echo $row['screen']; ?></option> 
    <?php } ?> 
</select>