【发布时间】:2020-06-07 20:43:04
【问题描述】:
我已经为用户创建了一个插件来检查他们所在位置是否有可用的交付选项。 后端代码工作正常,我可以添加邮政编码。数据显示在管理表中。 在前端,我试图通过 ajax 调用检查数据,即使我输入现有的邮政编码或错误,如果使用 if 语句得到响应为 0。 请帮助我哪里错了。谢谢。
这是 JavaScript Ajax 代码
jQuery(document).ready(function() {
var zipcodeInput = jQuery("#checkzipcode").find("input[name='checkzipcode']");
var zipcodeSubmit = jQuery("#ajax-form");
zipcodeSubmit.submit(function(e) {
e.preventDefault();
jQuery.ajax({
type: "POST",
url: my_action_callback.ajaxurl,
dataType: 'html',
data: {
action: 'my_action_callback',
checkzipcode: zipcodeInput.val()
},
success: function (data) {
jQuery('#zipcode-result').html(data);
},
error: function (data) {
console.log('error');
}
});
});
});
这是 THML 代码
function check_zipcode_for_delivery_frontend(){ ?>
<div class="woo-zcd-form">
<form method="POST" id="ajax-form">
<label>Enter Zipcode:</label>
<input type="text" name="checkzipcode" id="checkzipcode" required>
<input type="submit" name="submit" value="Check Zipcode" id="submit-zipcode">
</form>
</div>
<div id="zipcode-result"></div>
<?php }
add_shortcode('check_zipcode_delivery', 'check_zipcode_for_delivery_frontend');
这是 PHP 代码
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'assets/js/custom.js', array('jquery') );
wp_enqueue_script( 'jquery' );
wp_localize_script( 'my_custom_script', 'my_action_callback', array( 'ajaxurl' => admin_url('admin-ajax.php') ) );
});
add_action('wp_ajax_my_action_callback', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action_callback', 'my_action_callback');
function my_action_callback() {
global $wpdb;
$table_name = $wpdb->prefix . "deliverybyzipcode";
$checkzipcode = $_POST['checkzipcode'];
$sql = "SELECT * FROM ".$table_name." WHERE delivery_zipcode = '$checkzipcode'";
$result = $wpdb->query($sql);
$rows = $result->num_rows;
if($rows == $checkzipcode) {
echo "Yes! Our delivery service is available in your area.";
}
else {
echo 'Sorry! we are currently no delivering in your area.';
}
}
【问题讨论】:
-
首先在开发工具网络选项卡中检查请求本身,查看发送的 url 和数据是否符合预期、状态和响应正文等,以便缩小问题所在
标签: javascript php jquery ajax wordpress