我正在尝试将我的ajax中的信息导入PHP $ _POST,以便我可以更新我的数据库。
HTML
<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>
AJAX
function changeadmin(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);
}
});
};
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中设置它?
答案 0 :(得分:0)
序列化时,$ _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>
然后你可以在php中执行以下操作:
if (isset($_POST["admin"]) && isset($_POST["id"])) {
$admin = $_POST["admin"];
$id = $data["id"];
$sql = "UPDATE verkocht SET medewerker_verwerkt = '$admin' WHERE verkocht_id='$id'";
echo $sql;
}
您可以在ajax.php中执行以下操作来检查$ _POST的结构。
echo '<pre>';
print_r($_POST);
echo '</pre>';
die;
您还应该注意SQL注入。
答案 1 :(得分:0)
选择的函数名onchange事件不同!你写了onchange="chosenadmin(23)"
,而对于AJAX,你的名字是function changeadmin(verkochtid){...}
要获得帖子中的值,您必须使用PHP中的名称
HTML
<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>
AJAX
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);
}
});
};
PHP
if (isset($_POST["frm_admin"])) {
$medewerker = $_POST["admin"];
$verkoopid = $data["id"];
$sql = "UPDATE verkocht SET medewerker_verwerkt = '$medewerker' WHERE verkocht_id='$verkoopid'";
echo $sql;
};