2014-02-09 39 views
0

我是ajax的初學者,時間很短,所以我轉向這個社區尋求幫助。 我的問題是: 當我成功地發出ajax請求並返回結果時,我不能選擇另一個值。我會盡量在下面解釋。結果寫完後Ajax和PHP重新發送請求

我有一個搜索表單,其中包含4個下拉菜單和一個提交按鈕的PHP頁面。目標是通過從下拉列表中選擇一個值來設置搜索參數。當您選擇第一個值時,所有其他值必須根據選定的值更改值。

例如:我有一個下拉列表命名爲:

目標,月,港航

當您選擇的目的地,那麼所有其他的下拉菜單中有對應於目的地的方式重寫。所以,當我有這個目的地是一個單一的,現在我想選擇女巫月,或港口或船舶我想使用等等。

我希望你能理解。

編輯:它似乎不是與Ajax的問題​​,但與JQuery的事件沒有激化後,Ajax返回值。

我的代碼是:

阿賈克斯:

<script> 
var xmlhttp; 

function showUser(dest,mese,port,ladja) 
{ 
xmlhttp=GetXmlHttpObject(); 

if (xmlhttp==null) 
    { 
    alert ("Browser does not support HTTP Request"); 
    return; 
    } 
var url="remote.php"; 
url=url+"?dest="+dest+"&mese="+mese+"&port="+port+"&ladja="+ladja; 
url=url+"&sid="+Math.random(); 
xmlhttp.onreadystatechange=stateChanged; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(); 
} 

function stateChanged() 
{ 
if (xmlhttp.readyState==4) 
{ 
document.getElementById("content").innerHTML=xmlhttp.responseText; 
} 
} 

function GetXmlHttpObject() 
{ 
if (window.XMLHttpRequest) 
    { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    return new XMLHttpRequest(); 
    } 
if (window.ActiveXObject) 
    { 
    // code for IE6, IE5 
    return new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
return null; 
} 
</script> 

PHP

<div id="src"> 
    <div id="main"> 
     <div id="content"> 
      <form name="src" id="src_form" method="post" action="result.php"> 
      <div id="lin1" class="lin"><?php Destinacija(); ?></div> 
      <div id="lin2" class="lin"><?php Mesec(); ?></div> 
      <div id="lin3" class="lin"><?php Pristanisce(); ?></div> 
      <div id="lin4" class="lin"><?php Ladja(); ?></div> 
      <div id="lin5"><button id="src" type="submit">Išči</button></div> 
      </form> 

     </div> 
    </div> 
</div> 
<script> 
       $("#content").on("change", ".lin", function(event){ 
       event.preventDefault(); 
       //console.log($(this).text()); 
        showUser(document.getElementById('dest').value,document.getElementById('mese').value,document.getElementById('port').value,document.getElementById('ladja').value); 
      }); 

      </script> 

      <?php include("ajax.php"); ?> 
<?php 
    function Destinacija() 
    { 
     include("class/class.Translate_inl.php"); 
     $tr = new Translate_inl("dest_code"); 
     include("includes/conSql.php");   
     $result = mysqli_query($con,"SELECT DISTINCT region_code FROM no_air_pricing"); 

     echo '<select name="dest" id="dest">'.PHP_EOL; 
     echo '<option value="0">Destinacija</option>'.PHP_EOL; 
     while($row = mysqli_fetch_array($result)) 
      { 
       $dest = $tr->TrVar($row['region_code']); 
       echo'<option value="'.$row['region_code'].'">'.$dest.'</option>'.PHP_EOL; 
      } 
     echo '</select>'.PHP_EOL; 
     include("includes/disSql.php"); 
    } 
    function Mesec() 
    {   

      $tr = new Translate_inl("meseci");   
      include("includes/conSql.php"); 
      $mo = array(); 
      $i=0; 
      $result = mysqli_query($con,"SELECT sail_date FROM no_air_pricing ORDER BY sail_date"); 

      while($row = mysqli_fetch_array($result)) 
       { 
        $month = explode("/",$row['sail_date']); 
        $mo[$i] = $month[0]; 
        $i++;    
       } 

      include("includes/disSql.php"); 
      $un_mo = array_unique($mo); 
      $un_mo = array_values($un_mo); 
      $k = count($un_mo); 

      echo'<select name="mese" id="mese">'.PHP_EOL; 
      echo'<option value="0">Mesec odhoda</option>'.PHP_EOL; 
      for($j=0; $j<$k; $j++) 
      { 
       echo'<option value="'.$un_mo[$j].'">'.$tr->TrVar($un_mo[$j]).'</option>'.PHP_EOL; 
      } 
      echo'</select>'.PHP_EOL; 

      unset($tr); 
    } 
    function Pristanisce() 
    { 

     $tr = new Translate_inl("port_code"); 
     $port = array(); 
     $i=0; 
     include("includes/conSql.php");  

     $result = mysqli_query($con,"SELECT departure_port_code FROM no_air_pricing ORDER BY departure_port_code");  

     while($row = mysqli_fetch_array($result)) 
      { 
      $port[$i] = $row['departure_port_code']; 
      $i++; 
      } 

     include("includes/disSql.php"); 

     $uport = array_unique($port); 
     $uport = array_values($uport); 
     $k = count($uport); 
     echo '<select name="port" id="port">'.PHP_EOL; 
     echo '<option value="0">Pristanišče odhoda</option>'.PHP_EOL;  
     for($j=0; $j<$k; $j++) 
     { 
      echo'<option value="'.$uport[$j].'">'.$tr->TrVar($uport[$j]).'</option>'.PHP_EOL; 
     }  
     echo '</select>'.PHP_EOL;  
     unset($tr); 
    } 
    function Ladja() 
    { 

     $tr = new Translate_inl("ladje_kode"); 
     $ladje = array(); 
     $i=0; 
     include("includes/conSql.php");   
     $result = mysqli_query($con,"SELECT ship_code FROM no_air_pricing ORDER BY ship_code ");   

     while($row = mysqli_fetch_array($result)) 
      { 
      $ladje[$i] = $row['ship_code']; 
      $i++; 
      } 
     include("includes/disSql.php"); 

     $uladje = array_unique($ladje); 
     $uladje = array_values($uladje); 
     $k = count($uladje); 
     echo '<select name="ladja" id="ladja">'.PHP_EOL; 
     echo '<option value="0">Ladja</option>'.PHP_EOL; 
     for($j=0; $j<$k; $j++) 
     { 
      echo'<option value="'.$uladje[$j].'">'.$tr->TrVar($uladje[$j]).'</option>'.PHP_EOL; 
     } 
     echo '</select>'.PHP_EOL; 
     unset($tr); 
    } 
?> 

任何幫助將受到歡迎。提前致謝。 我已經編輯了php文件中的腳本代碼,以實現穆薩的答案。 仍然需要幫助原來的問題依然存在。

+1

您要查找的是事件代表團,當您想從網頁上動態創建的元素捕獲事件時,通常會發生這種情況。 – Musa

+0

我嘗試過,但仍然沒有焰火:(其他任何消耗? –

+0

'div's沒有改變事件 – Musa

回答

0

解決了這個問題。

我已經puted:

$.ajaxSetup({ 

    url: "remote.php", 
    global: true, 
    type: "POST" 

}); 

我的AJAX腳本之前,它解僱了。請不要問我爲什麼,它只是工作;)

謝謝你的所有答案。