2016-06-25 14 views
0

私は2つのフォームを持つページを持ち、各フォームはポストに異なるPHPページを使用します。私は、同じPHPポストスクリプトで複数のフォームを使用することに関するサンプル/ドキュメントしか見つけることができません。私はこれを働かせるために苦労しています、どんな助けもできますか?Ajax複数のPHP宛先を含む複数のフォームをPOST

この私は一つの形式を使用している場合、私はIDタグを追加しようとしましたが、動作していないようでした作品jQueryの、されています

  $(function() { 

      $('form').on('submit', function (e) { 

var form = $(this); 
e.preventDefault(); 

$.ajax({ 
type: 'post', 
url: form.attr('action'), 
data: form.serialize(), 
success: function() { 
    alert('Suppiler Amended!'); 
} 
}); 

      }); 

     }); 
     </script> 
     </head> 
     <body> 
     <?php 
     echo "<div class='table1'>"; 
     echo "<div class='datagrid'>"; 
      echo "<table id='tblData2'><thead><tr><th>Notes</th><th>Updated By</th><th></th></thead></tr>"; 
     while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { 
     ?> 
     <tbody><tr> 
     <td><FONT COLOR='#000'><b><?php echo "".$row["notes"].""?></td> 
     <td><FONT COLOR='#000'><b><?php echo "".$row["enteredby"].""?></td> 
     <td><FONT COLOR='#000'><b><a href="edit.php"> 

     <form name="edit" action="script1.php" method="post"> 
      <input type="hidden" name="notes" value="<?php echo"".$row["notes"]."";?>"> 
      <input type="hidden" name="noteid" value="<?php echo"".$row["noteid"]."";?>"> 
     <input type="submit" value="EDIT"> 
     </form> 
     </a></td> 
     </tr></tbody> 
     <?php 
     $companyid = "".$row['id'].""; 
     } 
     ?> 
     </table> 
     </div> 
     <br> 
     <form name="notes" action="add-note.php" method="post"> 
      ADD NEW NOTE:<br> 
      <input type="text" name="newnote" style="height:120px;width:200px;"><br> 
      <input type="hidden" name="companyid" value="<?php echo"".$companyid."";?>"> 
      <input type="hidden" name="user" value="<?php echo"".$user."";?>"> 
      <br> 
     <input type="submit" value="ADD NOTE"> 
     </form> 

答えて

0

あなたがする必要がある何が単純でありアクション属性を動的に取得します。あなたは機能内でform.attr('action');を使って簡単にそれを行うことができます。下記参照 -

$(function() { 

    $('form').on('submit', function (e) { 

    var form = $(this); 
    e.preventDefault(); 

    $.ajax({ 
    type: 'post', 
    url: form.attr('action'), 
    data: form.serialize(), 
    success: function() { 
     alert('Note has been edited!'); 
    } 
    }); 

    }); 

}); 

更新:

<html> 
    <head> 
     <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script> 
    </head> 
    <body> 
     <form name="edit" action="script1.php" method="post"> 
      <input type="hidden" name="notes" value="1"> 
      <input type="hidden" name="noteid" value="2"> 
      <input type="submit" value="s1"> 
     </form> 

     <form name="edit" action="script2.php" method="post"> 
      <input type="hidden" name="notes" value="1"> 
      <input type="hidden" name="noteid" value="2"> 
      <input type="submit" value="s2"> 
     </form> 

     <script type="text/javascript"> 
      $(function() { 

        $('form').on('submit', function (e) { 

        var form = $(this); 
        e.preventDefault(); 

        $.ajax({ 
        type: 'post', 
        url: form.attr('action'), 
        data: form.serialize(), 
        success: function() { 
         alert('Note has been edited!'); 
        } 
        }); 

        }); 

       }); 
     </script> 
    </body> 
</html> 
+0

これは私のために動作していないようです、最初の作品が、第2フォームはありません、私はちょうどポップアップを取得し、script.phpページ – spyda46

+0

へのリダイレクトは私は答えを更新し、今見てください。 –

+0

私は別のものを持っていて、2番目のスクリプトを動作させるように見えない、それはscript1.phpページにリダイレクトされない、私は完全なソースで質問を編集した - ありがとう! – spyda46

1

あなたのフォームをループする必要があります。

$(function() { 

$('form').on('submit', function (e) { 

    e.preventDefault(); 
    $('form').each(function(i, form) { 
     $.ajax({ 
      type: 'post', 
      url: form.attr('action'), 
      data: form.serialize(), 
      success: function() { 
      alert('Note has been edited!'); 
     } 
    }); 

}) 
}); 

}); 
関連する問題