从MySQL

时间:2015-04-23 01:26:06

标签: php jquery mysql ajax json

我试图通过json从ajax调用中获取数据,并在成功调用ajax后访问数据。为此,我写了以下代码:

<?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. 我之后没有得到任何东西:

    警告(&#34;我成功&#34;);

  2. 表示以下内容无效:

     var obj = JSON.parse(data);
     alert("object is " +obj);
    
    1. php响应如下:
    2.   

      [{&#34; 0&#34;:&#34; 5&#34;&#34; bike_modal_id&#34;:&#34; 5&#34;&#34; 1&#34 ;: &#34;沙贾汗&#34;&#34; bike_modal_name&#34;:&#34;沙贾汗&#34;&#34; 2&#34;:&#34; 30&#34;&#34; bike_id& #34;:&#34; 30&#34;},{&#34; 0&#34;:&#34; 6&#34;&#34; bike_modal_id&#34;:&#34; 6&#34; &#34; 1&#34;:&#34;夯&#34;&#34; bike_modal_name&#34;:&#34;夯&#34;&#34; 2&#34;:&#34; 30&#34;&#34; bike_id&#34;:&#34; 30&#34;}]

      我正在

        

      &#34; 0&#34;:&#34; 5&#34;&#34; bike_modal_id&#34;:&#34; 5&#34;

      额外。 请帮我在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;
              // }
      
          }
      

1 个答案:

答案 0 :(得分: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))