Можно ли использовать Ajax для вызова внутренней функции? - PullRequest
0 голосов
/ 25 марта 2019

совершенно новый для PHP, так что это первый для меня.Сейчас я хочу попробовать динамически обновить раскрывающийся список с 1 по 10 на основе предыдущего раскрывающегося списка.

Первый раскрывающийся список - это выбор таблицы, который позволяет выбирать таблицы 1-35.и второй выпадающий список - выбор места от 1 до 10.Мне бы хотелось, чтобы 1-10 обновлялось в зависимости от таблицы, чтобы сказать, кто уже забронировал места на столе.

Я уже нашел способ заполнить список должным образом, однако я 'У меня возникают некоторые проблемы, когда я пытаюсь обновить его при первом изменении выпадающего списка.

Я исследовал множество вызовов Ajax для различных файлов PHP, однако мой код зависит от того, где находится PHP в индексе.Файл .php для заполнения выпадающего списка.В настоящее время у меня есть функция, которая заполняет список при первой загрузке, и у меня есть небольшой Ajax-вызов внутренней функции в том же файле.

Это примерно тот код PHP, который полностью работает (есть немного большея пропустил это, поскольку это не имеет значения)

<?php
    function populateDropdown2(){
        for ($i=1; $i<=10; $i++)
        {
            if ($row[1] == $_POST['TableNum'] && $row[2] == $i)
            {
                $result = $i . ' - ' . $row[0];                              
                break;
            }
        }
?>
<option value="
    <?php echo $result;?>
" 
    <?php if(strlen($result) > 2){echo "Disabled";}?>
>
    <?php echo $result;?>
</option>

И это моя попытка вызова Ajax:

$(document).ready(function(){
        $('#Tabl').change(function(){
            console.log("CLICKED");
            $.ajax({
                url: "index.php",
                type: "post",
                success: function(response){
                    populateDropDown2(response);
                }
            });
        });    
});

Я довольно много читал об Ajax, однако возможно ли этовызвать функцию, которая существует в том же файле, что и внутри другого блока кода?Спасибо.

Редактировать: функция, которую я вызываю, должна быть в том положении, в котором она находится сейчас в файле PHP, так как она находится чуть ниже всех других полей ввода для формы

Edit2:Я получаю свои значения из файла CSV для PHP.

1 Ответ

0 голосов
/ 25 марта 2019

PHP и JavaScript (ваша функция AJAX) полностью отделены друг от друга, и вы не можете напрямую вызывать PHP из JavaScript:

  • PHP: запускается на веб-сервере и возвращает данные через HTTP.
  • JavaScript: запускается локально в браузере клиента.

Ваш AJAX-вызов должен будет вызвать определенный код PHP, который затем вернет данные в JavaScript, который вы затем сможете использовать для изменения HTML-кода.

Если вы создаете HTML в своем PHP-коде, который затем возвращается в функцию JavaScript, вы можете вставить его в DOM с помощью $. html () .

Желательно, чтобы вы возвращали представляющие интерес данные в виде JSON (см. json_encode () ), а затем использовали их для соответствующей манипуляции с DOM в JavaScript (см. JSON.parse ()).

Обязательно верните JSON, завернутый в объект, вместо массивов для безопасности, см. этот пост об уязвимости .

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