2013-01-18 24 views
1

我抓住列表框中的值並將它傳遞給另一個列表框,我已經使用一個值$ Lid工作,但現在我需要兩個$ Lid和$ Cid,這是正確的方式做這個?抓取兩個值Javascript

$(document).ready(function() 
{ 

$(".Doggie").change(function() 
{ 
var LocationString = $(this).find(":selected").val(); 
    var CityString = $(this).find(":selected").val(); 
    $.ajax({ 
     type: "POST", 
     url: "ajax_city.php", 
     data: {Lid : LocationString, Cid : CityString}, 
     cache: false, 
     success: function (html) { 
      $(".Kitty").html(html); 
     } 
    }); 
}); 

$('.Kitty').live("change",function(){ 
    var LocationString = $(this).find(":selected").val(); 
    var CityString = $(this).find(":selected").val(); 
    $.ajax({ 
     type: "POST", 
     url: "ajax_area.php", 
     data: {Lid : LocationString, Cid : CityString}, 
     cache: false, 
     success: function (html) {          
$(".Pig").html(html); 
} 
}); 

}); 
}); 
</script> 
</head> 
<body> 
     <div id="frame1"> 
     <label>Place :</label> 
     <select name="Doggie" class="Doggie" id="Doggie"> 
     <option selected="selected">--Select Place--</option> 
     <?php 
       $sql = mysql_query("SELECT tblLocations.RestID as Lid, tblLocations.CityID as Cid, tblRestaurants.RestName as name 
      FROM tblRestaurants INNER JOIN tblLocations ON tblRestaurants.RestID = tblLocations.RestID 
      GROUP BY tblLocations.RestID, tblRestaurants.RestName 
      ORDER BY tblRestaurants.RestName ASC"); 
     while($row=mysql_fetch_array($sql)) 
     { 
     echo '<option value="'.$row['Lid'].''.$row['Cid'].'">'.$row['name'].'</option>'; 
     } ?> 
     </select> 
     <label>City :</label> 
     <select name="Kitty" class="Kitty" id="Kitty"> 
     <option selected="selected">--Select City--</option> 
     </select> 
     <label>Area: :</label> 
     <select name="Pig" class="Pig" id="Pig"> 
     <option selected="selected">--Select Area--</option> 
     </select> 
     </div> 

</body> 
</html> 

而且......

<?php 
require ('config.php'); 

if ($_POST['Lid']) { 
    $Lid = $_POST['Lid']; 
    $sql = mysql_query("SELECT tblLocations.RestId as Lid, tblLocations.CityID as Cid,  tblCities.CityName as name 
       FROM tblLocations INNER JOIN tblCities ON tblLocations.CityID = tblCities.CityID 
       WHERE tblLocations.RestID = $Lid 
       GROUP BY tblLocations.RestID, tblCities.CityName 
       ORDER BY tblCities.CityName ASC"); 
    echo '<option selected="selected">--Select City--</option>'; 
    while ($row = mysql_fetch_array($sql)) { 
     echo '<option value="' . $row['Lid'] . '' . $row['Cid'] . '">' . $row['name'] . '</option>'; 
    } 
} 

?> 

眼下它不返回任何東西,所以我必須承擔其錯誤。謝謝。

回答

0

我不明白你爲什麼存入兩個瓦爾相同的值:

var LocationString = 'Lid=' + $(this).val(); 
var CityString = 'Cid=' + $(this).val(); 

它可以簡化爲:

var LocationString = $(this).val(); 

然後你只有一個值,所以data應請使用以下格式

data: { 
    'Lid': LocationString 
} 
+0

然而,我做了改變;仍然沒有收到任何數據。這部分是否正確的第二個代碼片段?如果($ _POST ['Lid']){ $ Lid = $ _POST ['Lid']; –

+0

@ ME-dia您需要像我在我的回答中那樣更改LocationString和CityString的值。 – marteljn

+0

@ ME-dia你做了一些不必要的事情,看看更新。你的php看起來不錯。 –

1

我建議進行以下更改:

var LocationString = $(this).find(":selected").val(); 
    var CityString = $(this).find(":selected").val(); 
    $.ajax({ 
     type: "POST", 
     url: "ajax_city.php", 
     data: {Lid : LocationString, Cid : CityString}, 
     cache: false, 
     success: function (html) { 
      $(".Kitty").html(html); 
     } 
    }); 

您正在添加兩個data值,這不是正確的做法。只需傳遞一個具有所需鍵和值的單個文字對象,並允許JQuery爲您進行格式設置。

+0

好吧,我做了更改,仍然沒有數據的返回。這條線是否正確?如果($ _POST ['Lid']){ $ Lid = $ _POST ['Lid']; –

+0

@ ME-dia是你的元素與類.doggie選擇框?如果是這樣,請在$(this).find(「:selected」)。val();' – marteljn

+0

@ ME-dia上面進行更改,爲什麼要將相同的值分配給兩個不同的變量? – marteljn

0

數據的格式應該

data: {Lid : LocationString, Cid : CityString}, 

,並檢查什麼是您的查詢的結果

通過

print_r(mysql_fetch_array($sql)) 

檢查,如果您的查詢沒有任何結果,回聲內循環將無法工作

0

這樣做了。

$(document).ready(function() 
      { 
      $(".Doggie").change(function() 
      { 
       var LocationString ='Rid='+ $(this).val(); 
      $.ajax({ 
      type: "POST", 
      url: "place_city.php", 
      data: LocationString, 
      cache: false, 
      success: function (html) { 
      $(".Kitty").html(html); 
      } 
      }); 
      }); 

      $('.Kitty').live("change",function(){ 
      var Rid = $('#Doggie').val(), // This is the value of the id="Doggie" selected option 
      Cid = $(this).val(); // This is the value of the id="Kitty" selected option 
      //alert("Rid = " + Rid + " Cid = " + Cid); 
      $.ajax({ 
      type: "POST", 
      url: "place_area.php", 
      data: {"Rid":Rid,"Cid":Cid}, 
      cache: false, 
      success: function (html) { 
      //alert('This is what is returned from the php script: ' + html);               
      $(".Pig").html(html); 
      }});});});