[英]Post data to PHP with AJAX
我試圖用AJAX將數據發送到PHP。 我已經嘗試使用$ .post和$ .ajax的JSON發送它,但它所做的全部-它返回注意:未定義的索引:C:\\ xampp \\ htdocs \\ PHP Test \\ db \\ editform.php中的id在第7行
我究竟做錯了什么?
的HTML
<form action="" method="post" class="usereditform">
<input type="hidden" name="id" value="'.$db_row['id'].'">
<input type="hidden" name="key" value="'.$_SESSION['security_key'].'">
</form>
jQuery的
$(document).on('click', '.edit_user', function (e) {
e.preventDefault();
var form = $(this).parent().find('form.usereditform');
var post_url = 'db/editform.php';
var post_data = form.serialize();
$.ajax({
type: 'post',
url: post_url,
data:post_data,
success: function () {
$('.edit_user_form_placeholder').load('db/editform.php');
$('.edit_user_popup').fadeIn();
}
});
});
PHP-editform.php
$id = $_POST['id'];
echo $id;
的HTML
<div class="popup edit_user_popup" style="display:none;">
<div class="popup_container">
<div class="edit_user_form_placeholder"></div>
</div>
</div>
您實際上正在發送兩個請求:
//first request with proper settings
$.ajax({
...
success: function () {
//second request without any posted data
$('.edit_user_form_placeholder').load('db/editform.php');
...
}
});
而是使用請求本身返回的數據。 使用$.post
方法可以通過以下方式完成
$.post(post_url, post_data, function(result) {
// ^- this is the data that gets returned by the request
$('.edit_user_form_placeholder').html(result);
$('.edit_user_popup').fadeIn();
});
這是我目前通過ajax與PHP進行通信的方式。 我發現它是最簡單的方法,並且無需表格即可完成。
jQuery的
var dataString = 'key1='+ value1 + '&key2='+ value2; //values you want to send
$.ajax({
type: "POST",
url: "db/editform.php",
data: dataString,
cache: false,
success: function(result){
//success text
}
});
PHP-editform.php
並收到這樣的消息。
$rowid = $_POST['key1'];
$securitykey = $_POST['key1'];
您是否嘗試過解析要發布到JSON對象中的數據?
var post_data = JSON.stringify(form.serializeArray());
您傳遞給ajax調用的數據未在JSON對象中格式化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.