2013-08-27 382 views
0

У меня есть index.php с формой. Когда он будет отправлен, я хочу получить результат от process.php, который будет отображаться внутри результата div на index.php. Довольно уверен, что мне нужен какой-то AJAX, но я не уверен ...Получение данных с PHP-страницы в форме submit

index.php

<div id="result"></div> 

<form action="" id="form" method="get"> 
    <input type="text" id="q" name="q" maxlength="16"> 
</form> 

process.php

<?php 

$result = $_GET['q']; 

if($result == "Pancakes") { 
    echo 'Result is Pancakes'; 
} 

else { 
    echo 'Result is something else'; 
} 

?> 
+2

Если вы уверены в AJAX (это способ сделать это), прочитайте немного об этом. Google 'AJAX' по крайней мере :) – Alvaro

+0

Что вы еще пробовали для AJAX? Попробуйте использовать AJAX и чем рассказать нам о проблеме. –

+0

[** Результат показа Google в форме div php **] (https://www.google.ca/search?q=show+result+in+div+form+php&ie=utf-8&oe=utf-8&rls=org .mozilla: ru-US: official & client = firefox-a & channel = np & source = hp & gws_rd = cr) –

ответ

0

Как насчет делать это в ваш index.php:

<div id="result"><?php include "process.php"?></div>

1

это JQuery Ajax пример,

$.ajax({ 
     type: "POST", 
     url: "somescript.php", 
     datatype: "html", 
     data: dataString, 
     success: function(data) { 
      doSomething(data); 
     } 
    }); 
2

Вы действительно не "нужно" AJAX для этого, потому что вы можете представить его себе и включить файл процесса:

index.php

<div id="result"> 
    <?php include('process.php'); ?> 
</div> 

<form action="index.php" id="form" method="get"> 
    <input type="text" id="q" name="q" maxlength="16"> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

process.php

<?php 
// Check if form was submitted 
if(isset($_GET['submit'])){ 

    $result = $_GET['q']; 

    if($result == "Pancakes") { 
     echo 'Result is Pancakes'; 
    } 

    else { 
     echo 'Result is something else'; 
    } 
} 
?> 

Реализация AJAX сделает вещи более удобными, но это определенно усложняет ваш код. Так что удачи в любом маршруте!

Это JQuery Ajax пример,

<script> 
//wait for page load to initialize script 
$(document).ready(function(){ 
    //listen for form submission 
    $('form').on('submit', function(e){ 
     //prevent form from submitting and leaving page 
     e.preventDefault(); 

     // AJAX goodness! 
     $.ajax({ 
      type: "GET", //type of submit 
      cache: false, //important or else you might get wrong data returned to you 
      url: "process.php", //destination 
      datatype: "html", //expected data format from process.php 
      data: $('form').serialize(), //target your form's data and serialize for a POST 
      success: function(data) { // data is the var which holds the output of your process.php 

       // locate the div with #result and fill it with returned data from process.php 
       $('#result').html(data); 
      } 
     }); 
    }); 
}); 
</script> 
+0

У вас был 'if (isset ($ _ POST ['submit'])) {', который не работал. Я изменил его на 'if (isset ($ _ GET ['submit'])) {' и теперь он работает. –

+0

Ваш 'тип:" POST ",' скорее всего, нужно будет установить 'type:" GET ",' в вашем методе Ajax. –

+0

Упс, сила привычки.Рад, что это сработало для вас! – MonkeyZeus

0

Два способа сделать это.

Либо используйте ajax для вызова process.php (я бы рекомендовал jQuery - очень легко отправить аякс-вызовы и сделать материал на основе результатов.), А затем использовать javascript для изменения формы.

Или у PHP-кода, который создает форму, будет тот же php-код, который формирует форму, а затем выводит разные вещи на основе наличия параметров. (Редактирование: MonkeyZeus дал вам информацию о том, как это сделать.)

Смежные вопросы