我是第一次在WordPress中测试ajax。我想在用户点击按钮时使用“POST”发送ID和字符串。我需要ID的值来更新我的数据库以及用于条件语句的字符串的值。既然WordPress有自己的方式来使用ajax,那么我必须尝试测试代码是否符合我的要求。
Jquery - custom-js.js:
$(function() {
$(".deal-vote-button").click(function(){
var prodID = $(this).attr('productID');
var voteType = $(this).attr('id');
$.ajax({
url: customajaxscript.ajax_url,
type: 'POST',
dataType: 'json',
data:{
action: 'productvote',
id: prodID,
productvote: voteType
},
success: function( response ){
alert('Got this from the server: ' + response);
},
error: function( error ){
alert('Error');
}
});
});
});
PHP - custom-functions.php:
/* Custom AJAX functions */
function my_ajax_resource() {
wp_enqueue_script('my-jquery',get_template_directory_uri().'/js/custom-js.js', array('jquery'));
wp_localize_script( 'my-jquery', 'customajaxscript',
array('ajax_url' => admin_url( 'admin-ajax.php' )));
}
add_action('wp_enqueue_scripts', 'my_ajax_resource');
/* AJAX function for voting system */
function productvote(){
$productID = isset($_POST['id']) ? $_POST['id'] : null;
$productVoteType = isset($_POST['productvote']) ? $_POST['productvote'] : null;
echo $productVoteType; // Could be echo "test" or anything else for testing purposes.
die();
}
这是我的问题。如果我尝试echo
包含字母的任何内容,我会在响应中出错。如果我echo
,432432
或123
等3
个数字,我会收到包含响应的提醒,这意味着代码有效。我的问题是:
1 - 当我echo
包含除数字之外的任何字符串的字符串时,我的代码导致错误有什么问题?
2 - 如果我想从$_POST
检索数据并将其与两个不同的变量相关联,那么我使用的方法是否正确?
3 - 当我执行代码时,我似乎得到了一个双重警告弹出窗口,可能是什么造成的呢?
请注意,我以前没有使用WordPress中的JSON和AJAX,因此,这对我来说都是新手。