2017-03-14 12 views
-2

注:重複する可能性のある質問は、フォーム情報を渡しながら複数ページの異なるオプションを補うことはできません。PHPとHTML - ユーザー入力を取得して別のページに移動する

私は現在のページからユーザー入力を受けなければなりません(これは単なるテキストフィールドです)、3つのボタンがあります。 3つのボタンはそれぞれ異なるページに移動するはずですが、3つのボタンはすべてテキストフィールドの値を必要とします。

基本的に、テキストフィールドの値を、ボタンがリダイレクトする3つのページのいずれかに「渡す」必要があります。現在のところ、ボタンはリダイレクトできないため、リダイレクトすることはできません。

これは、これまでの私のコードではありません:

<html> 
<body> 

<form name="form" action="" method="post"> 
Name: <input type="text" name="name" value="<?php echo $name;?>"> 
</form> 
<button type="button">button1</button> 
<button type="button">button2</button> 
<button type="button">button3</button> 

</body> 
</html> 

ませJavaScriptをしてください。

+0

何をしたいがPOSTリクエストをチェックし、リダイレクト処理することです成功した。私は誰かがあなたにリンクを与え、これを重複としてマークするのに十分親切になると確信しています。 – Brian

+0

私はあなたが質問を語っているのではないかと心配しています。私は入力をリダイレクトまたは取得するために_how_を要求していました。 – moosefoot

+1

[リンクのように動作するHTMLボタンを作成するにはどうすればいいですか?](http://stackoverflow.com/questions/2906582/how-to-create-an-html-button-that-acts-like-a -link) – adeam

答えて

1
<?php 
if(isset($_POST['button1'])){ 
    $link='index_1.php?name='.$_POST['name']; 
    header('location:'.$link); 
}elseif(isset($_POST['button2'])){ 
    $link='index_2.php?name='.$_POST['name']; 
    header('location:'.$link); 
} elseif(isset($_POST['button3'])){ 
    $link='index_3.php?name='.$_POST['name']; 
    header('location:'.$link); 
} 
?> 

<form action="" method="POST"> 
    Name: <input type="text" name="name" value=""> 
    <button type="submit" name="button1" value="button1">button1</button> 
    <button type="submit" name="button2" value="button2">button2</button> 
    <button type="submit" name="button3" value="button3">button3</button> 
</form> 
+0

リダイレクトされると入力に入力された値にアクセスできないため、この解決法は機能しません。しかし、リダイレクトは素晴らしいです。 – moosefoot

+0

このコード で前のPHPコードを変更し、リダイレクトされたページの$ _GET ['name']としてURLから値を取得することができます if(isset($ _ POST ['button1'])){ $ link = ' index_1.php?name = '。$ _ POST [' name ']; header( 'location:'。$ link); } elseif(isset($ _ POST ['button2'])){ $ link = 'index_2.php?name ='。$ _ POST ['name']; header( 'location:'。$ link); } elseif(isset($ _ POST ['button3'])){ $ link = 'index_3.php?name ='。$ _ POST ['name']; header( 'location:'。$ link); } – Shooter

+0

フォーマットされていないため、コードは読みにくいですが、これは美しく機能しました!ありがとうございました。 – moosefoot

1

formタグのaction属性に、フォームが通るページが定義されています。その属性にfilepath + filenameを書き込むだけで、送信後にそのページにリダイレクトされ、そこでPOSTパラメータ値を使用できます。

しかし、あなたはsubmitボタンを追加する必要があります - ではない3、1、およびinputタグ

+0

ユーザーが3つのボタンのいずれかを押したときにだけ投稿が行われるようにするにはどうすればよいですか?どのようにパラメータが渡されますか? – moosefoot

+0

また、3つのボタンが必要なので、ユーザーが何をしたいのか分かり、適切なページにリダイレクトします。単一のボタンを使用することによって、私はユーザが行きたいページ_を特定することができません。 – moosefoot

+0

これら3つのボタンの代わりに選択メニューまたはオプションリストを使用し、送信ボタンを追加することができます。フォームには1つの送信ボタンしか存在しません。ここをクリックしてください:https://www.w3schools.com/tags/att_form_method.asp – Johannes

0

として提出タイプを使用し、提出のための値(または、あなたが入れたい名前を確認してくださいポストがある場合に)PHPファイルで、値が「ボタン1」何かをしている場合など、その「ボタン2」であれば

<form action="/action_page.php" method="POST"> 
Name: <input type="text" name="name" value="<?php echo $name;?>"> 
<button type="submit" name="submited" value="button1">button1</button> 
<button type="submit" name="submited" value="button2">button2</button> 
<button type="submit" name="submited" value="button3">button3</button> 

</form> 
関連する問題