gpt4 book ai didi

php - 如何从 json (php) 获取正确的值?

转载 作者:行者123 更新时间:2023-12-01 07:37:40 25 4
gpt4 key购买 nike

更新模式( Bootstrap )

<div class="modal fade" id="updateModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Edit:</h5>
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" id="body">
<input type="text" class="form-control" placeholder="product_title" id="title">
</div>
<div class="modal-footer">
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
<a class="btn btn-primary" href="login.php">Update</a>
</div>
</div>
</div>
</div>

触发 update_modal(bootstrap)

    <td>
<a data-toggle='modal' data-target='#updateModal'>
<button class='btn btn-success' id='edit' data-id='$product_no'>Edit</button>
</a>
</td>

js

  <script>
$(document).ready(function() {
$(document).on('click','#edit',function () {
let id=$(this).attr('data-id');
// console.log(id);
$.ajax({
url:'get_record.php',
method:'post',
data:{
p_no:id
},
dataType:'JSON',
success:function (data) {
// $('#body').html(data);
console.log(data[0]);
console.log(data[1]);
console.log(data[2]);
}

});
});
})

</script>

get_record.php

<?php
include ("db.php");
global $conn;
if (isset($_POST['p_no'])){
$p_no=$_POST['p_no'];
$query="select * from products where p_no='$p_no'";
$result=mysqli_query($conn,$query);
while($row=mysqli_fetch_array($result)){
$user_data=' ';
$user_data [0]=$row['product_title'];
$user_data [1]=$row['date'];
$user_data [2]=$row['product_price'];
// echo $pro_title;
}
echo json_encode($user_data);
}

My problem is when I click the edit button, the update_modal displays successfully, but it doesn't get correct values from my database. I click F12 on my chrome and it tested like this photo

enter image description here

enter image description here

最佳答案

您正在将 get_record.php 中的 $user_data 初始化为字符串:$user_data = ' ';

尝试将该变量初始化为数组:$user_data = [];

因为您将 $user_data 初始化为字符串,所以设置 $user_data[0] 仅将字符串的第一个字符设置为值 的第一个字符$row['product_title']

<小时/>

编辑:正如评论中所指出的,通过将发布的数据直接插入到您的 SQL 中,您也会面临 SQL 注入(inject)攻击:

$p_no=$_POST['p_no'];
$query="select * from products where p_no='$p_no'"

在查询中使用所有用户输入之前,您应该转义它们。在 PHP 中对 MySQL 执行此操作的一种方法是:

$p_no=mysqli_real_escape_string($_POST['p_no']);
$query="select * from products where p_no='$p_no'"

使用prepared statements将是理想的。

关于php - 如何从 json (php) 获取正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60694495/

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