我想做什么:从FIRST表中复制所有选定的行并将它们插入到SECOND表中。在json中发送事件类型(插入或删除)和要复制的ID行数组。 我如何在PHP文件中访问此JSON数据?
JS:
var data_to_send = {
event : "accept",
ids : ids_to_accept,
}
console.log(ids_to_accept);
$.ajax({
type: "POST",
url: "request.php",
contentType: "application/json; charset=utf-8",
data: data_to_send,
success: function(response){
console.log("Dodałem rekord!");
},
});
PHP:
<?php
//include db configuration file
include_once("connect.php");
if(isset($_POST["data"])){
$data = $_POST["data"];
$ids_to_insert = array();
$ids_to_insert = $data["ids"];
$row_to_insert = $mysqli->query("SELECT * FROM oczekujace WHERE ID='".$ids_to_insert[0]."'");
$inser_row = $mysqli->query("INSERT INTO zaakceptowane(nazwa) VALUES('".$row_to_insert['nazwa']."')");
}
?>
编辑
好的,我解决了这个问题。刚刚删除了contentType ...
$.ajax({
type: "POST",
url: "request.php",
//dataType : "json",
//contentType: "application/json; charset=utf-8",
data: {data : data_to_send},
success: function(response){
console.log(response);
console.log("Dodałem rekord!");
},
});
答案 0 :(得分:0)
您可以使用json_decode()
功能。它返回php数组,你可以使用它在mysql中插入数据。要详细了解json_decode()
,请访问此链接。
http://php.net/manual/en/function.json-decode.php
答案 1 :(得分:0)
在AJAX中使用dataType:'json',
var data_to_send = {
event : "accept",
ids : ids_to_accept,
}
console.log(ids_to_accept);
$.ajax({
type: "POST",
url: "request.php",
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: data_to_send,
success: function(response){
console.log("Dodałem rekord!");
},
});
在PHP文件中使用json_decode()
include_once("connect.php");
if($_POST){
$data = json_decode($_POST);
//manipulate $data
$ids_to_insert = array();
$ids_to_insert = $data["ids"];
$row_to_insert = $mysqli->query("SELECT * FROM oczekujace WHERE ID='".$ids_to_insert[0]."'");
$inser_row = $mysqli->query("INSERT INTO zaakceptowane(nazwa) VALUES('".$row_to_insert['nazwa']."')");
}
它会按你的意愿工作。
答案 2 :(得分:0)
$_POST['data']
未定义,因为它不在data_to_send
中。
您必须直接在$_POST
:
$event = $_POST["event"]);
$ids_to_insert = $_POST["ids"];
或者您可以更改JS部分并提供data
元素:
$.ajax({
type: "POST",
url: "request.php",
data: {
"data": data_to_send,
},
success: function(response){
console.log("Dodałem rekord!");
}
});
不需要json_decode
,jQuery
已将data
对象转换为urlencoded参数字符串,而PHP又将其转换为数组。