我正在使用WordPress,並且無法確定如何處理來自Ajax的序列化數據。我在這個網站上看到,parse_str
是我需要的,但我不確定如何使用它。如何使用Ajax .serialize()數據將表單發佈到PHP?
這裏是jQuery的的表單提交
jQuery(document).ready(function($) {
$('#log_data').submit(function(event) {
event.preventDefault();
console.log($(this).serialize());
var data = $(this).serialize();
action = 'my_submit_log_action';
$.post(
ajaxurl,
data,
function (response) {
if (! response.success) {
alert('Failure!');
}
alert('Success!');
}
);
});
});
因爲這是在WordPress的,我有這樣的WordPress知道什麼函數來傳遞這些數據傳遞的動作。我不知道我是否通過了正確的行動(見上文)。
第二部分是PHP,這是我不明白。如何獲取序列化數據並將其發佈到數據庫?
add_action('wp_ajax_my_submit_log_action', 'my_submit_log_action');
add_action('wp_ajax_nopriv_my_submit_log_action', 'my_submit_log_action');
function my_submit_log_action() {
global $wpdb;
$user_id = $_POST['user_id'];
$length = $_POST['length'];
$ground = $_POST['ground'];
$date = $_POST['date'];
$notes = $_POST['notes'];
$wpdb->insert('wp_jo_plugin_options', array (
'user_id' => $user_id,
'length' => $length,
'ground' => $ground,
'date' => $date,
'notes' => $notes,
));
die();
}
您發送$。員額(阿賈克斯後),沒有定義爲ajaxurl(我猜它應該與action相關聯,但它不是,它必須是url),而且你還沒有使用'action'變量。所以問題在於你的jQuery,也許學到更多關於$的東西。發佈http://api.jquery.com/jQuery.post/ – Choinek
ajaxurl被定義爲我的WordPress的ajax - 這是如何在WordPress中調用ajax。 –