Javascript 在PHP和Ajax中使用Json传递值
我是Json的初学者。HTML表中包含一些值,需要使用json将这些值传递到prescription.php页面。我尝试过,但在ajax成功后,它在错误日志中显示了一条错误消息: e={readyState:4,getResponseHeader:ƒ,getAllResponseHeaders:ƒ,setRequestHeader:ƒ,OverrideMetype:ƒ,…} 以下是我的HTML代码段:Javascript 在PHP和Ajax中使用Json传递值,javascript,php,arrays,json,ajax,Javascript,Php,Arrays,Json,Ajax,我是Json的初学者。HTML表中包含一些值,需要使用json将这些值传递到prescription.php页面。我尝试过,但在ajax成功后,它在错误日志中显示了一条错误消息: e={readyState:4,getResponseHeader:ƒ,getAllResponseHeaders:ƒ,setRequestHeader:ƒ,OverrideMetype:ƒ,…} 以下是我的HTML代码段: <form method="post" id="prescriptionn" e
<form method="post" id="prescriptionn" enctype="multipart/form-data">
<div class="table-responsive">
<table class="table table-bordered mb-0" id="medical">
<thead>
<tr>
<th>Medicine Name</th>
<th>Morning</th>
<th>Noon</th>
<th>Night</th>
<th> <button type="button" name="add" id="add"
class="btn btn-success btn-xs"> + </button> </th>
</tr>
</thead>
<tbody id="rows">
</tbody>
</table>
<br><br>
<div align="center">
<input type="hidden" value="<?php echo $row['apt_id'] ?>"
id="getapt" name="getapt" class="btn btn-primary">
<input type="hidden" value="<?php echo $row['p_id'] ?>"
id="getpid" name="getpid" class="btn btn-primary">
<input type="button" name="submit"
id="submit" class="btn btn-primary" value="Enter Prescription">
</div>
</div>
</form>
以下是prescription.php页面中的php代码
我不知道我哪里出错了。非常感谢您的帮助 根据我在PHP代码中看到的内容,我理解您希望存储JSON index1的文本,因为它直接位于med_records sql元素下,您希望在尝试解码并提取两个值时将PARSE作为对象index2发送:
$jsondata1 = json_decode($_POST["index2"]);
echo $id= $jsondata1->getpid;
echo $apt= $jsondata1->getapt;
因此,您应仅对其中一个进行解码,并将第二个保留为字符串:
$jsondata=$_POST[index1];
作为$jsondata,您希望在数据库中以json字符串的形式存储,对吗?如果没有,请提供一些关于表的预期数据模式的信息
一定要知道你的代码不是很安全:首先,它应该验证是否发送了正确的值解码解析数据,检查预期的密钥,再次编码,还应该为会话中不再有用户id的情况做好准备。删除数据类型:“JSON”@RiteshKhandekar I removed,ajax成功后,当我看到数据库未保存时,它会显示成功插入的记录。没有插入任何记录????mysqli_stmt_execute$stmt;谢谢它起作用了。在这里,当我从数据库中检索这些数据时,如何将这些数据分离并在HTML表格中的单独列中显示我强烈建议执行$.makeArraymodess;在实际存储之前,避免将length或prevObject等jQuery属性也发送到数据库中。然后,从数据库获取数据——例如变量$row中的每个记录,您可以简单地使用json_decode foreach:$medRecords=json_decode$row['med_records'];以及更高版本:foreach$medRecords为$key=>$object{echo'.$object->morning'.};`等是在我发送到prescription.php页面之前。你是什么意思?数据类型是:“JSON”还是其他什么?此设置不是必需的,因为实际上您将JSON封装为字符串,并使用标准post格式发送它们;。如何做到这一点?如何发送这些值??不带var medical=JSON.stringifymodess;
<?php
session_start();
require_once "../auth/dbconnection.php";
// if (isset(json_decode($_POST["data"])) {
$jsondata = json_decode($_POST["index1"]);
$jsondata1 = json_decode($_POST["index2"]);
echo $id= $jsondata1->getpid;
echo $apt= $jsondata1->getapt;
if($stmt = mysqli_prepare($conn,"INSERT INTO prescription (apt_id,user_id,p_id, med_records,date) VALUES (?, ?, ?, ?, ?)")){
$cur_date = date('Y-m-d H:i:s');
$user_id= $_SESSION['user_id'];
// $p_id= $_POST['getpid'];
// $apt_id= $_POST['getapt'];
mysqli_stmt_bind_param($stmt, "sssss",$apt,$user_id, $id,$jsondata,$cur_date);
echo "Records inserted successfully.";
} else{
echo "ERROR: Could not prepare query: $sql. " . mysqli_error($conn);
}
mysqli_stmt_close($stmt);
?>
$jsondata1 = json_decode($_POST["index2"]);
echo $id= $jsondata1->getpid;
echo $apt= $jsondata1->getapt;