POST неопределенный индекс $ v3 - PullRequest
0 голосов
/ 14 октября 2019

Я работаю с ajax в WordPress, я хочу показать, что вводит пользователь, успех ajax отправляется на сервер, но массив POST выдает неопределенный индекс в моем index.php, почему он не работает?

inc / send.php

<?php
    add_action( 'wp_ajax_applican', 'applican');
    add_action( 'wp_ajax_nopriv_applican', 'applican');
    function applican(){
        $v3 = $_POST['v3'];
    };
    ?>

/ js / custom.js

let arr = [];
btnNext.on('click', () => {
    if(roomsRadio.is(':checked')) {
        calc.slick('slickNext');
        arr['version1'] = $('.rooms   input[type="radio"]:checked').val();
        console.log(arr['version1'])
    }
    if(versionRadio.is(':checked')) {
        calc.slick('slickNext');
        arr['version2'] = strip_html_tags($('.version   input[type="radio"]:checked').val());
        console.log(arr['version2'])
    }
    if(typeRadio.is(':checked')) {
        calc.slick('slickNext');
        arr['version3'] = strip_html_tags($('.type input[type="radio"]:checked').val());
        console.log(arr['version3'])
        $.ajax({
            type: "POST",
            dataType:'json',
            url: "/wp-admin/admin-ajax.php",
            data: {"action": "applican", "v3": arr['version3'], "v2": arr['version2'], "v1": arr['version1']},
            success: function(msg) {
                alert( "Data Saved: " + msg );
            },
            error: function () {
                console.log({"v3": arr['version3']});
            }
        })
    }

index.php

<?php applican(); echo $v3; ?>

1 Ответ

1 голос
/ 14 октября 2019

Как сказал Магнус, переменные в PHP имеют разные области действия Область действия переменной , Вы не можете выйти из области видимости. В вашем коде $v3 может быть достигнуто только внутри функции applican(), но не index.php. Вы можете расширить область действия переменной с помощью ключевого слова global:

<?php # inc/send.php
    function applican(){
        global $v3;
        $v3 = $_POST['v3'];
    };

или другого решения, такого как:

<?php # inc/send.php
    function applican(){
        return $_POST['v3'];
    };

<?php # index.php
    $v3 = applican(); echo $v3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...