Javascript 无法在wordpress上使用看似简单的js提交表单函数

Javascript 无法在wordpress上使用看似简单的js提交表单函数,javascript,php,wordpress,Javascript,Php,Wordpress,我一直在关注一些在线教程,了解如何做到这一点,我不知道我在哪里错过了分数。。。当我按下提交按钮时,它只会重新加载页面。虽然在chrome的控制台中加载我的js时我没有看到任何错误,所以我认为这可能是我的问题。但仍然不确定 基本上,人们可以在仪表板上提供新的账单地址,并且账单地址与用户和sku相关联 这是我的表格,有三项(用户、sku、地址) 最后,我知道我需要将它添加到我的子主题的functions.php,所以我创建了第二个文件(address_verifier.php),并将它像这样包含在我

我一直在关注一些在线教程,了解如何做到这一点,我不知道我在哪里错过了分数。。。当我按下提交按钮时,它只会重新加载页面。虽然在chrome的控制台中加载我的js时我没有看到任何错误,所以我认为这可能是我的问题。但仍然不确定

基本上,人们可以在仪表板上提供新的
账单地址
,并且
账单地址
用户
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]); 模具(); }
    move
    e.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();
    }