2013-02-17 2 views
1

Если у меня есть кнопка отправки, которая будет выполнять скрипт PHP, могу ли я выполнить ее без фактического перехода на эту страницу, то есть: process.php? Я привык к тому, что JavaScript может это сделать.Выполнять PHP без перенаправления на связанный с действием файл?

(Для записи, я говорю без AJAX, без перенаправления раз на этой другой странице, и нет, я не очень надеюсь.)

+0

Вы пробовали JavaScript: недействительным (0). http://stackoverflow.com/questions/1291942/what-does-javascriptvoid0-mean. Кстати, почему вы хотите остаться на одном сайте. В любом случае вы также можете попытаться использовать пост, а затем использовать ту же страницу в действии или использовать $ _SERVER ['PHP_SELF'], чтобы оставаться на php-странице со сценарием. Если вы не представили форму для показа, а когда отправили, покажите, что вам нравится на одной странице. –

+0

Дуг Смит - вопрос решен? –

ответ

3

Причина вы можете сделать это с помощью JavaScript потому что JavaScript может выполняться в браузере на стороне клиента. PHP, с другой стороны, ВСЕГДА выполняется на сервере и возвращает HTML клиенту. Короче говоря, вы не можете.

1

Один из способов сделать это без AJAX, чтобы отправить форму невидимого фрейма, например, так:

<form action="blah.php" target="theReallyCoolIframe">...</form> 
<iframe name="theReallyCoolIframe></iframe> 

Обратите внимание, что это на самом деле не очень изящное решение; AJAX - это гораздо лучшее решение в целом, и это не так сложно - вы должны посмотреть на jQuery и его AJAX APIs.

0

Попробуйте это, если вы хотите использовать только решение PHP для вашей проблемы.

<?php 


function submit_form(){ 
    $host = "localhost"; 
    $user = "user"; 
    $password = "password"; 
    $database = "database"; 

    $firstname = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING); 
    $lastname = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING); 
    $email = filter_var(filter_var($_POST['email'],FILTER_SANITIZE_EMAIL),FILTER_VALIDATE_EMAIL); 


    // open connection to database 
    $link = mysqli_connect($host, $user, $password, $database); 
     IF (!$link){ 
      echo ("Unable to connect to database!"); 
     } 
     ELSE { 
      //INSERT VALUES INTO DATABASE 
      $query = "INSERT INTO users (firstname,lastname,email) 
VALUES('".$firstname."', '".$lastname."', '".$email."'"; 
      return mysqli_query($link,$query); 

     } 
//close connection to database 
     mysqli_close($link); 

    } 


$form = <<<EODuserform 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
    <head> 
     <title>Form</title> 
    </head> 
     <form action="{$_SERVER['PHP_SELF']}" method="POST" name="userform"> 
      <label for='first'>First Name:</label></br> 
      <input type="text" name="firstname" id="first" maxlength="25" tabindex='1' VALUE="firstname" /></br> 
      <label for='first'>Last Name:</label></br> 
      <input type="text" name="lastname" id='lastname' maxlength="25" tabindex='2' VALUE="lastname" /></br> 
      <label for='email'>E-mail:</label></br> 
      <input type="text" name="email" id='email' maxlength="100" tabindex='3' VALUE="email" /></br> 
      <input type="submit" class='button' name="submit" value="submit" tabindex='4' /> 
      </form> 
    </body> 
</html> 
EODuserform; 


IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form. 

    echo $form; 
} 

ELSE{ 
// in the case you want to send something to the database use 
submit_form(); 
echo ('Thanks for submitting your form'); 
} 

?> 

Это очень простой скрипт, который вы можете найти подобный сценарий на этой странице: Form not saving to database

+0

Значит, вы говорите мне, что это работает без какой-либо навигации? Я не знал, что PHP выполняется или даже передается системе клиентов? Я понял, что PHP выполняется на сервере, а затем отправляет HTML клиенту. Ссылка http://w3schools.com/php/default.asp –

+0

«Что такое PHP PHP означает PHP: Hypertext Preprocessor PHP является широко используемым, с открытым исходным кодом сценариев язык сценариев PHP выполняются на сервер PHP можно скачать бесплатно и использовать « http://w3schools.com/php/php_intro.asp –

+0

@AMR благодарим за ваши комментарии. Форма выполняется на сервере после нажатия кнопки отправки. Затем выполняется следующий цикл. Однако для посетителя страницы расположение в браузере остается неизменным. –

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