2014-02-12 75 views
0

我需要使用mysql查詢獲取名稱,我試圖通過ajax發送一些值給php。Ajax多重響應

JS文件:

var dataselect = 'catg='+ $('#catg_list').val() + '&brand='+ $('#brand_list').val(); // get data in the form manual 

$.ajax({ 
    type="POST", 
    url:"check.php" 
    data: dataselect, 
    success: function(data) { 
     alert (data); 
    } 
}); 

check.php文件

<?php 
    include(database connection); 
    $catg_list= $_POST['catg']; 
    $brand_list= $_POST['brand']; 

    if ($catg_list!="") { 
    $catg_query = mysql_query("SELECT name FROM categories WHERE id='$catg_list'"); 
    if ($catg_query) { 
     while ($row_catg=mysql_fetch_assoc($catg_query)) { 
      echo $row_catg['name']; 
     } 
    } 
    } 

    if ($brand_list!="") { 
    $brand_list = mysql_query("SELECT name FROM brand WHERE id='$brand_list'"); 
    if ($brand_list) { 
     while ($row_brand=mysql_fetch_assoc($brand_list)) { 
      echo $row_brand['name']; 
     } 
    } 
    } 

?> 

問題是我需要在分別顯示上述兩種名稱。可能嗎?我對ajax非常陌生。任何幫助都會很棒。

謝謝

回答

0

您應該將數據以JSON格式發回。您可以發回一個JSON對象,就像PHP中的關聯數組。你可以使用這個PHP代碼:

<?php 
    include(database connection); 
    $catg_list= $_POST['catg']; 
    $brand_list= $_POST['brand']; 
    $results = array('categories' => array(), 'brands' => array()); 

    if ($catg_list!="") { 
    $catg_query = mysql_query("SELECT name FROM categories WHERE id='$catg_list'"); 
    if ($catg_query) { 
     while ($row_catg=mysql_fetch_assoc($catg_query)) { 
      $results['categories'][] = $row_catg['name']; 
     } 
    } 
    } 

    if ($brand_list!="") { 
    $brand_list = mysql_query("SELECT name FROM brand WHERE id='$brand_list'"); 
    if ($brand_list) { 
     while ($row_brand=mysql_fetch_assoc($brand_list)) { 
      $results['brands'][] = $row_brand['name']; 
     } 
    } 
    } 

    echo json_encode($results); 
?> 

然後,在你的JavaScript success功能,您data變量將是一個對象有兩個字段,每個包含數組。

{ 
    categories: [], 
    brands: [] 
} 

您可以通過遍歷data.categoriesdata.brands訪問它們。

最後,不要直接從$ _POST數組中使用帶有數據的SQL語句。你必須消毒。

JS

var dataselect = 'catg='+ $('#catg_list').val() + '&brand='+ $('#brand_list').val(); // get data in the form manual 

var x, y; 

$.ajax({ 
    type="POST", 
    url:"check.php" 
    data: dataselect, 
    success: function(data) { 
     var x = data.categories[0]; 
     var y = data.brand[0]; 
    } 
}); 
+0

能否請你幫我寫下來的代碼的JavaScript部分,我應該怎麼把你提到的代碼的成功函數內?同時發送值的PHP應該我使用「數據類型」JSON? –

+0

我的代碼假設你會返回多個類別和品牌。這是對的還是隻是其中之一? –

+0

先生,它將返回多個類別和品牌。 –