2013-01-23 36 views
3

我正在使用json的ajax調用。我打電話給ajax電話的酒店名單,但現在我必須打電話給特定酒店的價格。請支持。在JSON的響應對象上調用Ajax

守則酒店名單如下:
HTML

<td style="color: #993300"><strong>Add Services<input name="add-service" id="add-service" type="button" value="+" style="background-color: #993300; color: #FFFFFF;" /></strong></td>

的JQuery對於調用Ajax獲得酒店列表:

$('#cmb_service').bind('change', function(){

 var value = $(this).val(); 
     var destination = $("#destination") 
     $.ajax({ 
       type : 'POST', 
       url : '../enquiries/getpricebyajax', 
       dataType : 'json', 
       data: { 
         service : value, 
         destno : destination.val() 
       }, 
       success : function(data) { 
         $('#waiting').hide(500); 
         $('#divserviceprovider').text(''); 
         $('#divserviceprovider').append(data.msg); 
         $('#divserviceprovider').show(500); 
         if (data.error === true) 
          $('#divserviceprovider').show(500); 
       }, 
       error : function(XMLHttpRequest, textStatus, errorThrown) { 
         $('#waiting').hide(500); 
         $('#divserviceprovider').removeClass().addClass('error') 
          .text('There was an error.').show(500); 
         $('#divserviceprovider').show(500); 
       } 
     }); 
     return false; 
});` 

PHP代碼的響應酒店名單如下:

function getpricebyajax()

{ 
      $str="";$substr=""; 
      if(!empty($_POST['service'])) 
       { 
        switch ($_POST['service']) { 
         case "3": 
          { 
           $rshotels=$this->Enquiry->query("SELECT id, name FROM hotels where destination_id=".$_POST['destno']); 
           foreach($rshotels as $hotel){ 
             $substr.='<option value="'.$hotel['hotels']['id'].'">'.$hotel['hotels']['name'].'</option>'; 
           } 
           $str.= '<select id="cmb_hotel" name="cmb_hotel">'.$substr.'</select>'; 
           $str.= '<div id="divhotel_details"></div>'; 
          } 
          break; 
         default: 
          break; 
        } 
        $return['error'] = true; 
        $return['msg'] = $str; 
       } 
      exit(json_encode($return)); 
    } 

`

我直接HTML的代碼粘貼到DIV。它很好地顯示了酒店名單。但是選擇「divhotel_details」的代碼是什麼。當我點擊divhotel_details時,我必須再次調用ajax來生成該酒店的價格。

請給我建議。

在此先感謝。

回答

4

您可以點擊此處查看正確的方法來調用一個JSON服務:) - https://rvieiraweb.wordpress.com/2013/01/21/consuming-webservice-net-json-using-jquery/

編輯:

<script> 

function AjaxCall(){ 
    var hotel_val = $("#ddl_hotel").val(); 

    //do service ajax call passing the hotel val 

    success: function(response) { 
    $("#display_info").empty(); 
    //this 
    $("#display_info").append(response.Yourfields); 
    //or LOOP and show in div 
    }, 
    error: function(response) { 
     $("#display_info").append("No info for this hotel"); 
    } 
} 
</script> 

<select id="ddl_hotel" onchange="AjaxCall();"> 
    <option value="hotel1">Hotel 1</option> 
    <option value="hotel2">Hotel 2</option> 
    <option value="hotel3">Hotel 3</option> 
</select> 

<div id="display_info"> 
+0

感謝里卡多,但我需要基於第一個響應的動作調用嵌套的AJAX 。 –

+0

你可以得到正確的答覆並顯示這個問題?所以想讓你試着做的是在選擇框中,改變時調用新的價格是否正確? –

+0

你可以這樣做然後在你的callAjax()再次調用服務並在div中顯示信息,首先清理div $(「#div」) .empty(); $(「#div」)。append(ajaxresponse)我會爲你發佈一個新線程 –