我有一个奇怪的小故障发生在我身上,我不知道我是如何产生它的,或者它是否是正常的。
我正在开发自己的插件,当一个足球队/足球队被输入到一个框中时,它会检查它是否已经在数据库中。
以下是我的代码行
add_action( \'admin_footer\', \'fws_teamcheck_javascript\' );
function fws_teamcheck_javascript() { ?>
<script type="text/javascript">
jQuery(document).on(\'focusout\', \'.name\', function () {
var name = this.value;
//alert(name);
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action": "fws_check_name", "name": name},
success: function (data) {
alert(data);
if(data==\'true\') {
$(".name").css("border", "solid 1px red");
}
if(data==\'false\') {
$(".name").css("border", "solid 1px green");
}
}
});
});
</script>
<?
}
function fws_check_name(){
global $wpdb;
$dbtable = $wpdb->prefix . \'fws_team_data\';
$name = $_POST[\'name\'];
$data = $wpdb->get_results($wpdb->prepare("SELECT * FROM $dbtable WHERE name = $name"));
if($data) { echo \'true\'; }else{ echo \'false\'; }
}
add_action( \'wp_ajax_fws_check_name\', \'fws_check_name\' );
add_action( \'wp_ajax_nopriv_fws_check_name\', \'fws_check_name\' );
当我离开输入时,它会以以下方式发出警报:
true0
或
false0
是否有在末尾添加0的原因?
感谢您的投入。
SO网友:AdamCarder
我在重读AJAX页面时发现https://codex.wordpress.org/AJAX_in_Plugins 你必须把die();
在函数末尾。
我的代码现在看起来像这样,并按预期工作。
add_action( \'admin_footer\', \'fws_teamcheck_javascript\' );
function fws_teamcheck_javascript() { ?>
<script type="text/javascript">
jQuery(document).on(\'focusout\', \'.name\', function () {
var name = this.value;
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action": "fws_check_name", "name": name},
success: function (data) {
if(data==\'true\') {
$(".name").css("border", "solid 1px red");
}
if(data==\'false\') {
$(".name").css("border", "solid 1px green");
}
}
});
});
</script>
<?
}
function fws_check_name(){
global $wpdb;
$dbtable = $wpdb->prefix . \'fws_team_data\';
$name = $_POST[\'name\'];
$sql = $wpdb->prepare("SELECT * FROM $dbtable WHERE name = \'$name\'");
$data = $wpdb->get_results($sql);
if(count($data) >= \'1\'){ echo \'true\'; }else{ echo \'false\'; }
die();
}
add_action( \'wp_ajax_fws_check_name\', \'fws_check_name\' );
add_action( \'wp_ajax_nopriv_fws_check_name\', \'fws_check_name\' );