Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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 使用jQuery和Ajax选择未更改的值_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Php 使用jQuery和Ajax选择未更改的值

Php 使用jQuery和Ajax选择未更改的值,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我的表单中有两个下拉列表City和Zipcode。当用户选择Zipcode时,我想将City下拉列表更改为适当的City w.r.t Zipcode。我正在尝试使用Ajax来实现这一点 jQuery代码: $(document).on('change','#zip_id', function(e){ e.preventDefault(); var zipID = jQuery(this).val(); if(zipID){ jQuery.ajax({ url: ajaxschoolaj

我的表单中有两个下拉列表City和Zipcode。当用户选择Zipcode时,我想将City下拉列表更改为适当的City w.r.t Zipcode。我正在尝试使用Ajax来实现这一点

jQuery代码:

$(document).on('change','#zip_id', function(e){
e.preventDefault(); 
var zipID = jQuery(this).val();
if(zipID){
jQuery.ajax({
    url: ajaxschoolajax.ajaxurl,
    data: {'zip_id': zipID, 'action':'cityOptions_Process'},
    type: 'POST',
    success: function(data){
        jQuery('#temp').html(data); 
},

error: function (exception) {
    console.log("Error");
            console.log(exception);
        }
});
PHP函数

    function cityOptions_Process() {
    if(isset($_POST["zip_id"]) && !empty($_POST["zip_id"])){
        $selectedZip = $_POST["zip_id"];
        global $wpdb;

        $sql = "SELECT `city_id` FROM `wp_gj73yj2g8h_hills_zipcodes` WHERE zip_id = '$selectedZip'";
        $data = $wpdb->get_row($sql);
        $output = $data->city_id;
        echo $output;
        die();
}
}

add_action( 'wp_ajax_nopriv_cityOptions_Process', 'cityOptions_Process' );
add_action( 'wp_ajax_cityOptions_Process', 'cityOptions_Process' );

不适当的响应Ajax错误函数中显示的文本Ajax数据不回显$cityId,请返回它

function cityOptions_Process() {
if(isset($_POST["zip_id"]) && !empty($_POST["zip_id"])){
    $selectedZip = $_POST["zip_id"];
    global $wpdb;
    $cityId = $wpdb->get_results($wpdb_prepare("select city_id from `wp_gj73yj2g8h_hills_zipcodes` WHERE zip_id=%d",$selectedZip));
    return $cityId;

}
}

同时删除$city_id select.val'city'中的select

首先检查city的值可能是您的查询没有返回有效值。之后,您可以简单地使用此代码设置下拉值

 $('#city_id').val(city);
还可以从数据中删除单引号

 data: {zip_id: zipID, action:'cityOptions_Process'},

可变城市在成功函数中的价值是什么?还可以共享select元素的html。我收到的是未定义的链接:这就是问题所在。您需要在php函数中设置正确的返回值。现在返回值为0I,因为我没有添加add_操作功能。现在我可以在控制台日志中看到数据了。它的形式是:{city_id:8}0。我对0感到困惑。我正在用当前场景更新我的问题,所以问题是您正在从函数返回完整的行。如果您只发送city\u idlike$city\u id=$data->city\u id;然后echo$city_id;并且没有必要改变视图。让我知道这是否有帮助。谢谢,我能够看到正确的数据。但问题是每次0被追加到结果中。我想知道这是否是由于一些缓存问题?我不认为这是一个缓存问题,但你可以尝试一下。你能分享结果的更新视图吗?我在echo语句后添加了die。我知道0是Wordpress Ajax管理员的默认值。我将更新我的代码。非常感谢您对我的帮助: