gpt4 book ai didi

php - 从 MySQL 获取时在 json 中获取额外的值

转载 作者:行者123 更新时间:2023-11-30 22:45:21 25 4
gpt4 key购买 nike

我正在尝试通过 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. 之后我没有得到任何东西:

    alert("我成功了");

表示以下不工作:

 var obj = JSON.parse(data);
alert("object is " +obj);
  1. 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;
// }

}

最佳答案

第一期
由于您在 ajax 属性中设置了 dataType:"json",因此不需要使用 JSON.parse() 解析您返回的数据,因为您返回的数据已经是一个对象。您只需执行 data[0].bike_modal_name 即可访问这些对象。

第二期
您的重复值问题,即。 "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))

关于php - 从 MySQL 获取时在 json 中获取额外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29811966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com