Невозможно предупредить данные после ответа jQuery ajax - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь отправить данные, используя ajax и получая ответ

Это мой ajax код

jQuery( document ).ready(function() {
    jQuery( "#district" ).change(function() {
        var lvType = jQuery(this).val();

        if(lvType == '')
        {
            alert('Please Enter District First');
            return false;
        }
jQuery.ajax({
        url: '../wp-content/plugins/sevaapkedwar/menu-pages/search.php?q='+lvType,
        type: 'get',
        dataType: 'text/html',
        success:function(data)
        {
        alert('ajax call finished successfully');
        },
        error: function (err) {
                console.log(err);
            } 
     });
});});

, а мой search.php код

global $wpdb;
$q = $_GET['q'];
$get_m = "select * from `sevaapkedwar_area` where `district_name` = '$q'";
$get_st_l = $wpdb->get_results($get_m);
//print_r($get_st_l);
$json = array();
    foreach($get_st_l as $get_st_l){
      $json[] = array(
        'id' => $get_st_l->id, 
       'area' => $get_st_l->area_name 
      );
    }
    echo json_encode($json);

Когда я запускаю этот код, то в консоли статус запроса 200 OK with data [{"id":"8","area":"City1"}]

Но я не могу предупредить сообщение ajax call finished successfully

Чего мне не хватает

1 Ответ

0 голосов
/ 06 мая 2020

в ajax коде, измените dataType на json. dataType: тип данных, которые вы ожидаете от сервера. некоторые из возможных значений - xml, json, script или HTML. Ссылка: https://api.jquery.com/jquery.ajax/

dataType: 'json',

В коде PHP добавьте заголовок перед последним оператором echo.

header('Content-Type: application/json');
echo json_encode($json);

Ссылка: Returning JSON из PHP скрипта

Теперь ваш код должен работать правильно. Вы можете проверить / клонировать мою рабочую git репо для демонстрации ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...