Javascript 无法在wordpress上使用看似简单的js提交表单函数
我一直在关注一些在线教程,了解如何做到这一点,我不知道我在哪里错过了分数。。。当我按下提交按钮时,它只会重新加载页面。虽然在chrome的控制台中加载我的js时我没有看到任何错误,所以我认为这可能是我的问题。但仍然不确定 基本上,人们可以在仪表板上提供新的Javascript 无法在wordpress上使用看似简单的js提交表单函数,javascript,php,wordpress,Javascript,Php,Wordpress,我一直在关注一些在线教程,了解如何做到这一点,我不知道我在哪里错过了分数。。。当我按下提交按钮时,它只会重新加载页面。虽然在chrome的控制台中加载我的js时我没有看到任何错误,所以我认为这可能是我的问题。但仍然不确定 基本上,人们可以在仪表板上提供新的账单地址,并且账单地址与用户和sku相关联 这是我的表格,有三项(用户、sku、地址) 最后,我知道我需要将它添加到我的子主题的functions.php,所以我创建了第二个文件(address_verifier.php),并将它像这样包含在我
账单地址
,并且账单地址
与用户
和sku
相关联
这是我的表格,有三项(用户、sku、地址)
最后,我知道我需要将它添加到我的子主题的functions.php
,所以我创建了第二个文件(address_verifier.php),并将它像这样包含在我的主题functions.php
:
require_once(__DIR_.'/include/address_verifier.php')代码>
最后,这里是地址\u verifier.php
function submitaddress_ajax_enqueue() {
// Enqueue javascript on the frontend.
wp_register_script('submitaddress-ajax-script', get_stylesheet_directory_uri() . '/js/address_submit.js', array('jquery') );
wp_enqueue_script('submitaddress-ajax-script');
// The wp_localize_script allows us to output the ajax_url path for our script to use.
wp_localize_script('submitaddress-ajax-script','submitaddress_ajax_obj',array( 'ajaxurl' => admin_url( 'admin-ajax.php' ),'loadingmessage' => __('Submitting Address...') ));
}
add_action( 'wp_enqueue_scripts', 'submitaddress_ajax_enqueue' );
add_action( 'wp_ajax_submitaddress', 'submitaddress' );
add_action( 'wp_ajax_nopriv_submitaddress', 'submitaddress' );
function submitaddress() {
global $woocommerce,$wpdb,$product;
$errorMSG = [];
//check if data is present
$user = $_POST['userid'];
//check sku selected
if (empty($_POST['sku'])) {
$errorMSG .= "<li>Please select a product.</li>";
} else {
$sku = $_POST['sku'];
}
//check address input
if (empty($_POST['address'])) {
$errorMSG .= "<li>Please enter an address.</li>";
} else {
$address = $_POST['address'];
}
if(empty($errorMSG)){
$updateaddress = $wpdb->query( $wpdb->prepare("REPLACE INTO ".$wpdb->prefix."newaddress (user, sku, address) VALUES (%d, %s, %s)", $user, $sku, $address ) );
$msg = "<strong> <i class='fa fa-check' aria-hidden='true'></i> Your <font color='red'>" . $sku . " </font>address has been updated. </strong>";
echo json_encode(['code'=>200, 'msg'=>$msg]);
die;
}
echo json_encode(['code'=>404, 'msg'=>$errorMSG]);
die();
}
函数submitaddress\u ajax\u enqueue(){
//在前端将javascript排队。
wp_register_script('submitaddress-ajax-script',get_stylesheet_directory_uri()。/js/address_submit.js',array('jquery');
wp_排队_脚本(“submitaddress-ajax-script”);
//wp_localize_脚本允许我们输出ajax_url路径以供脚本使用。
wp_本地化脚本('submitaddress-ajax-script','submitaddress_ajax_obj',数组('ajaxurl'=>admin_url('admin ajax.php'),'loadingmessage'=>(提交地址…));
}
添加动作('wp_排队_脚本','submitaddress_ajax_排队');
添加动作('wp_ajax_submitaddress','submitaddress');
添加动作(“wp_ajax_nopriv_submitadress”,“submitadress”);
函数submitaddress(){
全球$woocmerce、$wpdb、$product;
$errorMSG=[];
//检查数据是否存在
$user=$\u POST['userid'];
//检查所选sku
如果(空($_POST['sku'])){
$errorMSG.=“请选择一种产品。 ”;
}否则{
$sku=$_POST['sku'];
}
//检查地址输入
if(空($_POST['address'])){
$errorMSG.=“请输入地址。 ”;
}否则{
$address=$_POST['address'];
}
if(空($errorMSG)){
$updateaddress=$wpdb->query($wpdb->prepare(“替换为“$wpdb->prefix.”新地址(用户、sku、地址)值(%d、%s、%s)”,$user、$sku、$address));
$msg=“您的“$sku.”地址已更新。”;
echo json_encode(['code'=>200,'msg'=>$msg]);
死亡
}
echo json_encode(['code'=>404,'msg'=>$errorMSG]);
模具();
}
movee.preventDefault()
到函数顶部。我建议将所有.val()
从ajax请求中移出。我也尝试过,但我现在在控制台中得到:POST 500
jQuery(document).ready(function($) {
jQuery('form#addressform').on('submit', function(e){{
jQuery.ajax({
type: 'POST',
dataType: 'json',
url: submitaddress_ajax_obj.ajaxurl,
data: {
'userid' : jQuery('form#addressform #userid').val(),
'sku' : jQuery('form#addressform #sku').val(),
'address' : jQuery('form#addressform #address').val(),
'action' : 'submitaddress'
},
success : function(data){
if (data.code == "200"){
alert("Success: " +data.msg);
} else {
jQuery(".display-error").html("<ul>"+data.msg+"</ul>");
jQuery(".display-error").css("display","block");
}
}
});
e.preventDefault();
});
});
function submitaddress_ajax_enqueue() {
// Enqueue javascript on the frontend.
wp_register_script('submitaddress-ajax-script', get_stylesheet_directory_uri() . '/js/address_submit.js', array('jquery') );
wp_enqueue_script('submitaddress-ajax-script');
// The wp_localize_script allows us to output the ajax_url path for our script to use.
wp_localize_script('submitaddress-ajax-script','submitaddress_ajax_obj',array( 'ajaxurl' => admin_url( 'admin-ajax.php' ),'loadingmessage' => __('Submitting Address...') ));
}
add_action( 'wp_enqueue_scripts', 'submitaddress_ajax_enqueue' );
add_action( 'wp_ajax_submitaddress', 'submitaddress' );
add_action( 'wp_ajax_nopriv_submitaddress', 'submitaddress' );
function submitaddress() {
global $woocommerce,$wpdb,$product;
$errorMSG = [];
//check if data is present
$user = $_POST['userid'];
//check sku selected
if (empty($_POST['sku'])) {
$errorMSG .= "<li>Please select a product.</li>";
} else {
$sku = $_POST['sku'];
}
//check address input
if (empty($_POST['address'])) {
$errorMSG .= "<li>Please enter an address.</li>";
} else {
$address = $_POST['address'];
}
if(empty($errorMSG)){
$updateaddress = $wpdb->query( $wpdb->prepare("REPLACE INTO ".$wpdb->prefix."newaddress (user, sku, address) VALUES (%d, %s, %s)", $user, $sku, $address ) );
$msg = "<strong> <i class='fa fa-check' aria-hidden='true'></i> Your <font color='red'>" . $sku . " </font>address has been updated. </strong>";
echo json_encode(['code'=>200, 'msg'=>$msg]);
die;
}
echo json_encode(['code'=>404, 'msg'=>$errorMSG]);
die();
}