Заполнить переменную PHP с помощью AJAX? - PullRequest
1 голос
/ 09 июля 2011

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

Когда пользователь вводит интерес и нажимает кнопку "Отправить", мой AJAX вступает во владение, заполняет таблицу и затем перезагружает страницу, так что переменная теперь отображается как имеющая значение.

Можно ли не обновлять страницу, поэтому я могу сказать "if success $ var = 'value';"?

Надеюсь, это не слишком запутанно, спасибо

Ответы [ 3 ]

1 голос
/ 09 июля 2011

Нет, вы не можете.К тому времени, когда HTML отобразится / отобразится в браузере, PHP, скорее всего, уже давно закончит генерацию HTML.Можно выполнить обход значений через обработчик AJAX, а затем заполнить места на странице, где отображаются значения, но когда зачем беспокоиться о циклическом переключении?Просто сделайте так, чтобы вызов AJAX сразу же заполнил значения.

1 голос
/ 09 июля 2011

Это абсолютно возможно и довольно легко сделать. Просто создайте другой скрипт php и вызовите его из javascript на странице формы (я предполагаю, что вы используете jQuery):

$('#mysubmit').click(function() {
    $.getJSON(
        'form_ajax.php', // This is the php file that will be called
        { formVar1: $('#form-var-1').val() }, // Add all your form data here
        function(data) {
            // This is the function that is called after the php script is 
            // done executing. The 'data' variable will contain the $data
            // array you see in the following php file.
        }
    );
});

Я предпочитаю использовать JSON, но другие подходы так же хороши. Ознакомьтесь с документацией для getJSON () и ajax () . Ваш php файл будет выглядеть примерно так:

<?php
    $data = array();
    if ($_SERVER['REQUEST_METHOD'] == "POST") {
        $data['formVar1'] = $_POST['formVar1'];
    }
    echo json_encode($data);
?>

Конечно, вы, вероятно, сделаете намного больше с данными формы. Кроме того, есть множество других подходов, поэтому изучите тот, который наилучшим образом соответствует вашим потребностям.

1 голос
/ 09 июля 2011

Поскольку вы уже используете AJAX, почему бы вам просто не выполнить логику с использованием Javascript? Если вы используете jQuery, сделайте так, чтобы функция обратного вызова успешно выполнила нужный код.

Проблема с отправкой данных из AJAX в PHP заключается в том, что PHP является языком на стороне сервера, а AJAX - языком на стороне клиента. К тому времени, когда ваш браузер видит страницу, PHP уже полностью выполнен и возвращен вам как HTML / CSS / Javascript и т. Д.

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