2013-01-18 2 views
1

목록 상자에서 값을 가져 와서 다른 목록 상자로 전달할 때 하나의 값 $ Lid를 사용하여 모든 작업을 수행했지만 이제는 두 개의 $ Lid 및 $ Cid가 필요합니다. 올바른 방법은 다음과 같습니다. 이 작업을 수행?두 값을 잡아 자바 스크립트

$(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

그러나 변경했습니다. 여전히 데이터가 없습니다. 두 번째 코드 스 니펫에서이 부분이 맞습니까? if ($ _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

그래, 나는 변화를했지만 여전히 데이터가 반환되지 않았다. 이 줄이 맞습니까? if ($ _POST [ 'Lid']) { $ Lid = $ _POST [ 'Lid']; –

+0

@ ME-dia는 선택 상자를 .doggie 클래스와 함께 사용하는 요소입니까? 그렇다면, 방금 변경 한 내용을 $ (this)) .find (": selected"). – 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); 
      }});});}); 
관련 문제