Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Wordpress中设置AJAX请求时出现问题(使用JQuery)_Php_Jquery_Wordpress - Fatal编程技术网

Php 在Wordpress中设置AJAX请求时出现问题(使用JQuery)

Php 在Wordpress中设置AJAX请求时出现问题(使用JQuery),php,jquery,wordpress,Php,Jquery,Wordpress,我得到了一个错误“500(内部服务器错误)。我在这里经历了很多解决方案,它们似乎并没有改变我的结果,我不知道为什么。我仍在学习Wordpress和Ajax,因此非常感谢您的帮助 Myfunctions.php: <?php // register and enqueue custom js scripts add_action('wp_enqueue_scripts', 'hyix_enqueue_custom_js'); function hyix_enqueue_custom_js()

我得到了一个错误“500(内部服务器错误)。我在这里经历了很多解决方案,它们似乎并没有改变我的结果,我不知道为什么。我仍在学习
Wordpress
Ajax
,因此非常感谢您的帮助

My
functions.php

<?php
// register and enqueue custom js scripts
add_action('wp_enqueue_scripts', 'hyix_enqueue_custom_js');
function hyix_enqueue_custom_js() {
    //enqueue zip-search-popup.js
    wp_enqueue_script('zip-search-popup', get_stylesheet_directory_uri().'/js/zip-search-popup.js', array('jquery'), false, true);
    wp_localize_script('zip-search-popup', 'from_php', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
} 
//hook zip-search function into ajax
add_action( 'wp_ajax_zip_search', 'zip_search' );
//same hook for users not logged in
add_action( 'wp_ajax_nopriv_zip_search', 'zip_search' );

//query for pulling in shipping data
function zip_search() {
  $submittedZip = $_REQUEST['submittedZip'];
  global $wpdb;
  // The SQL query
  $response  =  $wpdb-> get_results("SELECT {$wpdb->prefix}woocommerce_shipping_zones.zone_name ".
              "FROM {$wpdb->prefix}woocommerce_shipping_zone_locations ".
              "INNER JOIN {$wpdb->prefix}woocommerce_shipping_zones ".
              "ON {$wpdb->prefix}woocommerce_shipping_zone_locations.zone_id = {$wpdb->prefix}woocommerce_shipping_zones.zone_id ".
              "WHERE location_code = '$submittedZip' ");
  $response = array(
    'request' => $_REQUEST,
    'zip' => $submittedZip,
    'test' => 'is ok',
  );
  wp_send_json( $response );
  // echo $response;
  die();
}

要找出哪里出了问题,请检查php服务器的error.log.。

这正在运行
code
对于您来说,您需要将此
code
添加到您的
子主题
函数中。php
我对代码做了一些更改,就像您在wordpress中对脚本进行
wp\u排队
一样

子主题(functions.php)

子主题(js文件-jQuery代码)zip-search-popup.js

$(document).ready(function () {
    $('.zip-bar-button').click(function (event) {
        event.preventDefault();
        submittedZip = $("#zipcode-bar-input").val();
        console.log(submittedZip);
        $.ajax({
            url: MyAjax.ajaxurl,
            type: "POST",
            dataType: "json",
            data: {
                action: 'zip_search',
                submittedZip: submittedZip,
            },
            success: function (response) {
                console.log("this is the response: " + response);
                alert("working");
            },
        })
    })
})

你的ajax url被调用了吗?你是说用这个吗?$.ajax({url:from_php.ajax_url,是的………它在代码中。我不知道你在问什么?你是说我检查了它是否真的被调用了吗?如果是的话,我该怎么做?检查浏览器网络控制台,看看是否有任何请求在点击按钮时通过
ajax
被调用。你怎么知道它的500个错误?在哪里你看到了吗?
function my_custom_scripts() {

    $myvars = array( 
        'ajaxurl' => admin_url( 'admin-ajax.php' ) //admin ajax
    );
  
  wp_enqueue_script( 'my-ajax-request', get_stylesheet_directory_uri() . '/js/zip-search-popup.js', array( 'jquery' ),'',true );
    wp_localize_script( 'my-ajax-request', 'MyAjax', $myvars );

}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );

//hook zip-search function into ajax
add_action( 'wp_ajax_zip_search', 'zip_search' );
//same hook for users not logged in
add_action( 'wp_ajax_nopriv_zip_search', 'zip_search' );

//query for pulling in shipping data
function zip_search() {
  $submittedZip = $_REQUEST['submittedZip'];
  global $wpdb;

  //The SQL query
  $response  =  $wpdb-> get_results("SELECT {$wpdb->prefix}woocommerce_shipping_zones.zone_name ".
              "FROM {$wpdb->prefix}woocommerce_shipping_zone_locations ".
              "INNER JOIN {$wpdb->prefix}woocommerce_shipping_zones ".
              "ON {$wpdb->prefix}woocommerce_shipping_zone_locations.zone_id = {$wpdb->prefix}woocommerce_shipping_zones.zone_id ".
              "WHERE location_code = '$submittedZip' ");
  $response = array(
    'request' => $_REQUEST,
    'zip' => $submittedZip,
    'test' => 'is ok',
  );
  wp_send_json( $response );
}
$(document).ready(function () {
    $('.zip-bar-button').click(function (event) {
        event.preventDefault();
        submittedZip = $("#zipcode-bar-input").val();
        console.log(submittedZip);
        $.ajax({
            url: MyAjax.ajaxurl,
            type: "POST",
            dataType: "json",
            data: {
                action: 'zip_search',
                submittedZip: submittedZip,
            },
            success: function (response) {
                console.log("this is the response: " + response);
                alert("working");
            },
        })
    })
})