Отправка формы с помощью Ajax и мгновенное отображение результатов из файла PHP - PullRequest
1 голос
/ 28 октября 2011

Я знаю, что это было так много, но я немного не в себе, и мне просто нужен кто-то, кто объяснит, как сделать это так, чтобы я мог понять.

Я хочу отправить HTML-форму с помощью функции AJAX в jQuery, которая затем мгновенно отправляет данные формы в мой PHP-скрипт. Мой PHP-скрипт затем должен собрать эти данные и назначить переменным и т. Д. Затем PHP-скрипт выполняет загрузку другого дерьма и, наконец, выводит некоторые результаты на основе этих введенных данных.

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

Я не понимаю, как собрать ответ из файла PHP, чтобы я мог вывести его на странице формы.

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

Любая помощь очень ценится!

Спасибо.

Ответы [ 4 ]

2 голосов
/ 28 октября 2011

Вам просто нужно задать запрос $.get() или $.post().

Дайте форме идентификатор в своем HTML:

<form id="ajaxquery" method="post" action="">
<label for="field">Type Something:</label>
<input type="text" name="field" id="field" value="" />
<input type="submit" value="Send to AJAX" />
</form>

<div id="success"></div>

Тогда в вашем JS:

$("#ajaxquery").live( "submit" , function(){
    // Intercept the form submission
    var formdata = $(this).serialize(); // Serialize all form data

    // Post data to your PHP processing script
    $.post( "/path/to/your.php", formdata, function( data ) {
        // Act upon the data returned, setting it to #success <div>
        $("#success").html ( data );
    });

    return false; // Prevent the form from actually submitting
});

Тогда в вашем PHP:

<?php

// Process form data
echo '<strong>You submitted to me:</strong><br/>';
print_r( $_REQUEST );

Все что угодно echo () 'd будет возвращено в функцию $ .post () как data

0 голосов
/ 28 октября 2011

Функция get JQuery позволит вам передать функцию, которая будет вызываться при успешном выполнении запросов.

jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
0 голосов
/ 28 октября 2011

В любом случае, если ваш фактический код отображается полностью, я могу подумать о нескольких причинах:

A.Неправильная конфигурация сервера / компилятор php - ваш сервер не может обработать страницу php как файл сценария и выводит ее в виде текста.

B.Ваш код написан не правильно (в основном, когда на сервере отключены короткие теги, такие как <?, и вам нужно написать <?php), поэтому ваш сервер не принимает это как скрипт.

0 голосов
/ 28 октября 2011

Иметь $ .ajax ();вызовите с использованием jquery для отправки страницы и в случае успеха (когда выполняется код PHP) верните строку json и содержат элемент, содержащий status: true или что-то вроде, затем вызовите функцию (в случае успеха jquery), которая получает результаты с другой страницы php и отображает мгновенно

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