невозможно получить php глобальные переменные, используя ajax - PullRequest
1 голос
/ 28 марта 2020
if(!isset($_GET['t'])){$table = 'notes';}
else{$table = $_GET['t'];}

$cats = $table . '_cats';

include 'test.php';

тест. php

test(); // works fine

if(isset($_POST['fn'])){
    $_POST['fn']();
}

function test(){
    global $cats, $table;
    echo $cats;
    echo $table;
}

js

$(document).on('click', '.atitle', function(){
    $.post('test.php', {fn: 'test'}, function(data){
        console.log(data); // empty
    });
});

Я ожидаю $cats и $table написано в консоли

Любая помощь?

1 Ответ

2 голосов
/ 28 марта 2020

Поскольку ваше первое имя файла a_notes.php, затем позвоните a_notes.php из ajax. Вы определяете $cats, $table в a_notes.php, а не в test.php.

$(document).on('click', '.atitle', function(){
    $.post('a_notes.php', {fn: 'test'}, function(data){
        console.log(data);
    },'json');// set dataType as json
});

Также в test.php, так как вы вызываете функцию test(), то выдает возвращаемое значение функции.

echo test();

if(isset($_POST['fn'])){
    $_POST['fn']();
}

function test(){
    global $cats, $table;
    return json_encode(["cats"=>$cats,"table"=>$table]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...