Ответ Ajax не отображается на странице - PullRequest
0 голосов
/ 23 апреля 2019

Мой ajax

    $.ajax({
        type: 'POST',
        url: ajax.ajax,
        contentType: false,
        processData: false,
        dataType: 'JSON',
        status: 200,
        data: formdata,
        success: function(msg){
            $('#success_message').fadeIn().html(data);
            setTimeout(function() {
                $('#success_message').fadeOut("slow");
        }, 2000 );

        }
    });

Это часть PHP

function form(){ 

    global $wpdb;
    $table = cars;

    foreach ($_FILES as $file) {
        if($file['error'] == UPLOAD_ERR_NO_FILE) {
            continue;
        }

        $valid_ext = array( 'img' , 'png');
        $extension_upload = strtolower(  substr(  strrchr($file['name'], '.')  ,1)  );
        if ( in_array($extension_upload,$valid_ext) ) {
            $name_upload = uniqid() . $file['name'];
            $url_insert = trailingslashit( plugin_dir_path( dirname( __FILE__ ) ) ) . 'uploads';
            wp_mkdir_p($url_insert);
            $name_insert = trailingslashit($url_insert) . $name_upload;
            $action = move_uploaded_file($file['tmp_name'],$name_insert);

            $data = array( 'customer_resume' => $name_upload );
            $format = array( '%s' );

            $success=$wpdb->insert( $table, $data, $format );  
            $msg_true = 'Upload ok ';

        } else {
            $msg_error = 'Upload error';
        }
    }

    $result = !isset($msg_error);
    $msg = array();

    if($result) {
        $msg['error'] = 'true';
        $msg['true'] = $msg_true;
    } else {
        $msg['error'] = 'false';
        $msg['false'] = $msg_error;
    }

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

}

И HTML-код, в котором я пытаюсь показать сообщение об успехе или ошибке

<div id="error_message"></div>
<div id="success_message"></div>

Когда я нажимаю кнопку «Отправить», все отлично работает и сохраняется в базе данных, но нет никаких указаний на успех или нет.Я пытался добавить это msg, но на странице ничего не отображается.

Ответы [ 2 ]

2 голосов
/ 23 апреля 2019

Сторона PHP:

Вам необходимо напечатать одну и ту же переменную для успеха и неудачи:

if($result) {
        $msg['error'] = 'true';
        $msg['msg'] = $msg_true;
    } else {
        $msg['error'] = 'false';
        $msg['msg'] = $msg_error;
    }

Сторона JavaScript:

Ответ AJAX будет иметь вид

data.error -> true or false.
data.msg -> Success or Error message depending upon program logic.

...
 success: function(data){
  $('#success_message').fadeIn().html(data.msg);
...
1 голос
/ 23 апреля 2019

Что скрывается за "ajax.ajax"?

Также, если вы хотите показать свои данные, вам нужно использовать «msg»

success: function(msg){
        $('#success_message').fadeIn().html(msg);
        setTimeout(function() {
            $('#success_message').fadeOut("slow");
    }, 2000 );

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