2015-04-23 84 views
1

我想通過json從ajax調用中獲取數據,並在成功調用ajax後訪問數據。爲此目的,我寫了下面的代碼:在從MySQL獲取數據時在json中獲取額外的值

<?php 
    error_reporting(E_ALL); 
    ini_set('display_errors', 1); 
    require_once('../include/functions.php'); 

    // session_start(); 

    if(isset($_POST['bike_id'])) 
    { 
     $rows = array(); 
     // echo " I am in isset"; 
     $bike_id = $_POST['bike_id']; 
     // $modal_name = $_POST['modal_name']; 
     // $json['insertModal'] = false; 

     // json_decode($modal_name); 
     json_decode($bike_id); 

     $result = selectBike_Modal($bike_id); 

     while ($row = mysqli_fetch_array($result)) 
     { 
      $rows[] = $row; 
     } 
     echo json_encode($rows); 
    } 
    else 
    { 
     echo "bike_id is not set"; 
    } 
?> 

現在我想通過javascript來訪問它:

$('#choose_bike').on('blur', 
    function (e) { 
     e.preventDefault(); 
      var bike_id = $('#choose_bike').val(); 
     //  var modal_name = $('#modal_name').val(); 
     //  // alert("bike_id is " + bike_id); 
      alert("On blur is clicked."); 
      if (bike_id == "Select A Bike") 
      { 
       $('#defaultError').addClass("alert alert-danger"); 
       $('#defaultError').text("Please choose a Bike"); 

      } 
      else 
      { 
       // alert("Bike is : " + bike_id); 
       $.ajax(
       { 
        url:'../admin/backend/getModal.php', 
        type:'POST', 
        data: { bike_id: bike_id}, 
        dataType:"json", 

        success:function(data) 
        { 
         alert(" i am in success"); 
         var obj = JSON.parse(data); 
         alert("object is " +obj); 
        }, 
        error : function() { console.log(arguments); } 
       } 
       ); 
      } 

    }); 

我有兩個問題:

  1. ,我沒有得到任何東西后:

    警報(「我在成功」);

指下不工作:

var obj = JSON.parse(data); 
alert("object is " +obj); 
  • PHP的響應如下:
  • [{"0":"5","bike_modal_id":"5","1":"shahjahan","bike_modal_name":"shahjahan","2":"30","bike_id":"30"},{"0":"6","bike_modal_id":"6","1":"ram","bike_modal_name":"ram","2":"30","bike_id":"30"}]

    我正在

    "0":"5","bike_modal_id":"5"

    額外。 請幫我解析JavaScript中的json,並只獲取所需的ajax值。

    編輯:

    選擇bike_model樣子:

    function selectBike_Modal($bike_id) 
        { 
         include("connectvars.php"); 
         $query = "select * from bike_model where bike_id = '$bike_id'"; 
         $result = mysqli_query($dbc,$query) 
         or die('error in fetching'); 
    
         // if (mysqli_num_rows($result)) 
         // return 0; 
         // else 
          return $result; 
         // if (()) 
         // { 
         // return $result; 
         // } 
         // else 
         // { 
         // return 0; 
         // } 
    
        } 
    
    +0

    能否請您分享了'selectBike_Modal()' –

    +0

    您是否獲得在瀏覽器的Web控制檯的任何錯誤代碼在開發人員工具? –

    +0

    yes,** Uncaught語法錯誤:意外的令牌o ** –

    回答

    0

    問題1
    既然你設置你的Ajax特性dataType:"json",與JSON.parse()解析你返回的數據是不需要的,因爲你返回的數據已經是一個對象。只需執行data[0].bike_modal_name即可訪問對象。

    問題2
    您的問題的重複值,即。 "0":"5","bike_modal_id":"5"是因爲默認情況下,mysqli_fetch_array()將結果行作爲關聯數組和數組獲取。您可以更改

    while ($row = mysqli_fetch_array($result)) 
    

    while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
    

    while ($row = mysqli_fetch_assoc($result))