2016-10-12 16 views
1

これは私の初めての質問投稿です...私はアーカイブを検索し、これを無駄に解決しようとしました...これは怠け者ではありませんが、経験不足/無知からのより多くの。とにかく、私の質問に:htmlフォームからphpスクリプトを呼び出す

私は、フォームの次のHTML部分があります。

<form name="form1" method="post" action="script.php"> 
     <fieldset> 
      <legend>Tell me your name</legend> 

      First Name: <input type="text" name="name"><br> 

      Submit:  <input type="submit" value="send"> 

     </fieldset> 
    </form> 

を、ファイルscript.phpには、次のものが含まれています

<?php 
    $name = "empty"; 
    if(!empty($_POST["name"])) 
    { 
    $name = $_POST["name"]; 
    } 
    echo $name; 
?> 

非常にシンプル/初心者のもの。私がフォームを提出すると、私は新しいページに送られます。新しいページには、 "空"または名前のフォームフィールドに入力したものが印刷されます。

私の質問:スクリプト出力を含む新しいページにブラウザをリダイレクトせずにフォームを含む任意のhtmlページからこのスクリプトを実行するにはどうすればよいですか?私はバックグラウンドでスクリプトを実行したい/現在のページを残さずに(メッセージを印刷するためではなく、フォームフィールドに入力したものをデータベースに保存するなど)。私は(htmlファイル)で、フォームの「アクション」部分にこれを入力して試してみた:

<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 

そして、それは別のページに私をリダイレクトし、エラーを示しています。すべてのヘルプを

Not Found The requested URL /< was not found on this server. Apache/2.4.18 (Ubuntu) Server at localhost Port 80

を大いに感謝します。前もって感謝します。

+3

叫んではいけません、私の目を傷つけてください – nogad

+3

アヤックス、私の友人。 ajax – Phiter

+0

私はajaxに同意しますが、ページに投稿してリダイレクトすることができます(ほとんど瞬時になります)。ほとんどの人は注意を払わない(または注意) – nogad

答えて

0

いずれの単一のページにコードを組み合わせる:(フォームが最初にロードされたときとしない)フォームが実際に送信されたときにコードが唯一のトリガーとなるよう

<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $name = .... 
    etc... 
} 
?> 

<html> 
<body> 
... form ... 
</body> 
</html> 

または、AJAXを使用してバックグラウンドの送信を行い、元のページをそのまま残してユーザーに表示します。

+0

コードを1ページにまとめると... htmlフォームのアクション部分に何を入れるべきですか? – Ariel

関連する問題