[英]ajax post information into php $_POST
我試圖從我的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中設置它?
當您序列化時,$ _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注入。
select的函數名onchange事件是不同的! 你寫了onchange="chosenadmin(23)"
而對於AJAX調用,名字是function changeadmin(verkochtid){...}
要獲得post中的值,必須在PHP中使用name
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;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.