<input name="txtFirstname" id="Firstname" type="text" class="field" Value="First"> <input name="txtFirstname" id="Firstname" type="text" class="field" Value="First"> <input name="txtFirstname" id="Firstname" type="text" class="field" Value="First" />

送信時に2つの書式を検証する

私は2つのフォームを持っています。最初のフォームはテキストボックスを含み、2番目のフォームはボタンを含みます。私はボタン(jqueryまたはjavascript)を使用してテキストボックスを検証したい:

<form name="contactus" method="post">
<input name="txtFirstname" id="Firstname" type="text" class="field" Value="First name*" style="width:300px" />
</form>

<form name="frm1" action="sendemail.php" method="post">     
<input id="send" type="image" src="images/sub.png" alt="Submit" style="float:right" />
</form>

私のテキストボックスが 'frm1'にないとき、どうすればこのことができるでしょうか?

1
ああ、神様!なぜあなたはそれをしたいのですか?
追加された 著者 Marek Sebera,
どうやってそれをやるべきだと思いますか?私は完全にPHPに新しいです...私はこのようにしている理由は、私はラジオボタンのクリックで変更される複数のフォームを持つためです...と電子メールを送信する
追加された 著者 Zaki,
しかし、私のシナリオは異なります...私はいくつかのラジオボタン(jqueryを使用して)送信ボタンで別のフォームを表示するいくつかのラジオボタン...ページの上部にいくつかのボックスがあります... ...それが明らかであることを願って
追加された 著者 Zaki,
@DaveRandom、私は1つのフォームを持っている場合、何を 'アクション'は、私は複数のボタンを持っているように電子メールを送信するために別のPHPファイルに投稿するとき...
追加された 著者 Zaki,
@DaveRandomあなたは私にこの例を見せていただけますか?私はラジオボタンの表示に応じて別のボックスを表示し、ボタンを送信して電子メール(テキストボックス値を含む)を送ります..そしてスクリプトはいつも私のサーバーにあります
追加された 著者 Zaki,
@ Sam1あなたはまだそれのために1つのフォームが必要です。ラジオボタンに応じてコンテンツを変更することができますが、フォームは1つだけ必要です。フォームは、 <div> <table> などの他のブロックレベルの要素を含むことが想定されている code> <input> を保持しています。これらの要素の内容は、ラジオボタンの値に基づいて簡単に更新できます。
追加された 著者 DaveRandom,
@ Sam1どのボタンがクリックされたかに応じて、JavaScriptのフォームの action を動的に変更することができます。しかし、私はあなたが1つのスクリプトにすべてのサブミット処理コードをラップすることができるかもしれないかどうかを判断するためにクリックされたサブミット入力の名前/値を使用するかもしれないのだろうか。実行されるアクションはどのように異なっていますか?自分のサイトでホストされているスクリプトに常に提出していますか?
追加された 著者 DaveRandom,
フォームはHTMLですが、論理的な方法はこの場合は単一のフォームを使用することです。また、すべての form タグはHTML仕様に従って action 属性を持つ必要があります。
追加された 著者 fivedigit,

2 答え

上記の2つのアプローチの例を以下に示します。

1)Javascriptを使用して、クリックされたボタンに応じてフォームのアクション属性を変更します:

<form id='the_form' action='' method='post'>
  <input type='text' name='text_input' />
  <input type='button' id='button_1' value='Button 1' />
  <input type='button' id='button_2' value='Button 2' />
</form>
<script type='text/javascript'>
  var theForm = document.getElementById('the_form');
  $('#button_1').click(function() {
    theForm.action = 'script1.php';
    theForm.submit();
  });
  $('#button_2').click(function() {
    theForm.action = 'script2.php';
    theForm.submit();
  });
</script>

2)すべての送信ハンドラコードを1つのスクリプトで保持する(推奨):

HTML:

<form id='the_form' action='script.php' method='post'>
  <input type='text' name='text_input' />
  <input type='submit' name='submit_1' value='Submit' />
  <input type='submit' name='submit_2' value='Submit' />
</form>

PHP:

<?php

  if (isset($_POST['submit_1'])) {
    echo 'You clicked button 1';
  } else if (isset($_POST['submit_2'])) {
    echo 'You clicked button 2';
  }
1
追加された
ありがとう、私は方法2を使用し、両方のボタンの '送信'の値を可能にする場合は可能です...
追加された 著者 Zaki,
了解、ありがとう :)
追加された 著者 Zaki,
はい、 name を使用して、 value の代わりにクリックされたボタンを特定するだけです。上記の編集を参照してください。
追加された 著者 DaveRandom,
ああ、それは動作しません、私に1秒間を編集するために与えてくださいハングアップ...
追加された 著者 DaveRandom,
実際にはうまくいくでしょう。上のように編集してください。
追加された 著者 DaveRandom,

これを試しましたか?

$('#send').click(function(){
    var textVal = $('#Firstname').val();
    //your validation code goes here
});
0
追加された
これは動作しますが、テキストボックスが空の場合、ページの再読み込みを防止するために何をすべきですか
追加された 著者 Zaki,
if(textVal == '')はfalseを返します。
追加された 著者 Broncha,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com