1

1つのテキストボックスと2つのボタンがある問題を解決する方法を考えています。各ボタンは、そのタスクを実行するためにテキストボックスに同じデータを必要とします。

1つのボタンは、レビューしている既存のレコードを更新するためのものであり(テキストボックスの新しい値を使用)、もう1つのボタンは、新しいレコードを追加するために使用されます(ここでも、テキストの新しい値を使用します)。

私が持っていたアイデアの1つは、jqueryを使用して、表示されているテキストボックスがユーザーによって変更されたときに更新される非表示のテキストボックスを更新することでした。

したがって、次のようなものです:(これは単なる擬似コードです...)

 <form name="form1" method="post" action="controller1/method1">
     <input type=text name=visibleTextBoxForForm1></input>
     <button type=submit value=UPdate>
 </form>
 <form name="form2" method="post" action="controller2/method2">
     <input type=hidden name=hiddenTextBoxforForm2></input>
     <button type=submit value=New>
 </form>
 <script>
        $('#visibleTextBoxForForm1').live('change', function() {
             //update a hidden textbox in form2 with value of this textbox.
         });
 </script>

これを行うためのより良い方法はありますか?

4

2 に答える 2

1

または、JQuery 経由で行うこともできます。ボタンごとにクリックリスナーを関連付け、クリック時にフォームに正しい URL を提供します。

ここにいくつかの簡単なコードがあります...正しい要素に対して適切なjqueryクエリを修正する必要があります。

<form name="form1" method="post">
   <input type=text name=visibleTextBoxForForm1></input>
   <button type=button value=Update>
   <button type=button value=New>
</form>

<script>
    $('update').click(function() {
          $(form1).attr('action', <update url>).submit();
    });

    $('new').click(function() {
          $(form1).attr('action', <new url>).submit(); 
    });
</script>
于 2012-09-26T18:19:18.877 に答える
0

それが唯一のフィールドである場合は、2つのボタンを備えた1つのフォームを用意し、送信に使用したボタンの名前に基づいてそのテキストデータを処理します。

<form name="form1" method="post" action="controller1/method1">
    <input type="text" name="text" />
    <input type="submit" name="insert" value="Insert New Data" />
    <input type="submit" name="update" value="Update Existing Data" />
</form>

PHP(私はそのフレームワークに精通していないため、CodeIgniterではありません):

if(isset($_POST['insert'])) {
    // insert $_POST['text']
} else if (isset($_POST['update'])) {
    // update $_POST['text']
} else {
    // error
}
于 2012-09-26T14:41:24.623 に答える