2015-04-23 130 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))