Javascript ajax将信息发布到php$\u post中
我正试图从我的ajax中获取信息,并将其放到一篇PHP$\u文章中,以便更新我的数据库 HTMLJavascript ajax将信息发布到php$\u post中,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,我正试图从我的ajax中获取信息,并将其放到一篇PHP$\u文章中,以便更新我的数据库 HTML <form id="23" method="post"> <select name="admin" onchange="chosenadmin(23)"> <option value="rick">rick</option> <option value="john">john</option>
<form id="23" method="post">
<select name="admin" onchange="chosenadmin(23)">
<option value="rick">rick</option>
<option value="john">john</option>
<option value="dick">dick</option>
</select>
</form>
PHP
if (isset($_POST["serialize"])) {
$data = $_POST["serialize"];
$medewerker = $data["chosen_admmin"];
$verkoopid = $data["id"];
$sql = "UPDATE verkocht SET medewerker_verwerkt = '$medewerker' WHERE verkocht_id='$verkoopid'";
echo $sql;
};
PHP永远不会执行,但在控制台日志中,我可以看到表单的id和admin=rick
我可以从中看出AJAX获取信息并处理它,但是如何在PHP中设置它?序列化时,$\u POST中的数据将在html中包含输入名称字段的索引 可以使用隐藏的输入字段来序列化ID
<form id="23" method="post">
<select name="admin" onchange="chosenadmin(23)">
<option value="rick">rick</option>
<option value="john">john</option>
<option value="dick">dick</option>
</select>
<input type="hidden" name="id" value="23" />
</form>
您可以在ajax.php中执行以下操作来检查$\u POST的结构
echo '<pre>';
print_r($_POST);
echo '</pre>';
die;
echo';
打印(邮政美元);
回声';
死亡
您还应该注意SQL注入 序列化时,$\u POST中的数据将具有html中输入名称字段的索引 可以使用隐藏的输入字段来序列化ID
<form id="23" method="post">
<select name="admin" onchange="chosenadmin(23)">
<option value="rick">rick</option>
<option value="john">john</option>
<option value="dick">dick</option>
</select>
<input type="hidden" name="id" value="23" />
</form>
您可以在ajax.php中执行以下操作来检查$\u POST的结构
echo '<pre>';
print_r($_POST);
echo '</pre>';
die;
echo';
打印(邮政美元);
回声';
死亡
您还应该注意SQL注入
onchange=“chosenadmin(23)”
对于AJAX调用,名称是函数changeadmin(verkochtid){…}
onchange=“chosenadmin(23)”
对于AJAX调用,名称是函数changeadmin(verkochtid){…}
放置
print\r($\u POST)
在PHP代码前面,查看数据传输的内容和方式。没有发生$\u POST[“序列化”]
事件。但是应该有一个$\u POST['admin']
echo$\u POST[“serialize”]这是什么?你的脚本有可能会看到甚至使用@riggsfully都发生了什么,我从打印中得到了一个数组(),我拿走了准备form@RanjeetSingh未定义的索引:序列化放置一个print\r($\u POST)
在PHP代码前面,查看数据传输的内容和方式。没有发生$\u POST[“序列化”]
事件。但是应该有一个$\u POST['admin']
echo$\u POST[“serialize”]这是什么?你的脚本有可能会看到甚至使用@riggsfully都发生了什么,我从打印中得到了一个数组(),我拿走了准备form@RanjeetSingh未定义索引:如果使用print\u r($\u POST),则序列化;它说:如果我使用print_r($_POST[“id”]),则为array();它说:未定义的索引:id。如果我做了更改,这并不重要。控制台日志会给我返回好的值,对不起,如果您尝试在浏览器中使用调试器检查Ajax调用的请求头和负载,php中仍然没有发生任何事情?如果我使用print\r($\u POST);它说:如果我使用print_r($_POST[“id”]),则为array();它说:未定义的索引:id。如果我做了更改,这并不重要。控制台日志会给我返回好的值。对不起,伙计们,如果您尝试在浏览器中使用调试器检查Ajax调用的请求头和负载,php中仍然没有发生任何事情。对不起,伙计们,php中仍然没有发生任何事,无法将整个$\u POST数组打印到php文件中。仍然只是array(),我尝试了document.getElementById(“test”).innerHTML=(this.data);这也起到了作用。请确保您正在通过AJAX发布页面,并尝试在控制台上打印$(“#”+id)的日志。serialize()抱歉,伙计们,在php文件中仍然没有发生任何事情来将整个$u POST数组打印到php文件中。仍然只是array(),我尝试了document.getElementById(“test”).innerHTML=(this.data);这也起到了作用。请确保您正在通过AJAX发布页面,并尝试在控制台上打印$(“#”+id)的日志
<form id="23" name="frm_admin" method="post">
<select name="admin" onchange="chosenadmin(23)">
<option value="rick">rick</option>
<option value="john">john</option>
<option value="dick">dick</option>
</select>
<input type="hidden" name="id" value="23" />
</form>
function chosenadmin(verkochtid){
id = verkochtid;
console.log(id);
$.ajax({
url: 'winkels.php',
id: id,
type: 'POST',
data: $('#'+id).serialize(),
success: function(data, id){
console.log(this.data);
console.log(this.id);
}
});
};
if (isset($_POST["frm_admin"])) {
$medewerker = $_POST["admin"];
$verkoopid = $data["id"];
$sql = "UPDATE verkocht SET medewerker_verwerkt = '$medewerker' WHERE verkocht_id='$verkoopid'";
echo $sql;
};