2016-12-02 104 views
0

我需要通過jQuery提交一個公式 - 如果它只是一種形式 - 它的工作很好,但如果有不止是形式,它不起作用(結果是頁面重新加載)。創建多個,但只提交一個表單與jQuery

我想爲每個用戶創建一個jQuery Accordion細分 - 我可以在其中編輯用戶。 - 沒問題 但段中的表單具有所有相同的ID。

在jQuery-Part中,我必須輸入表單的ID - 我的問題是,我不知道如何用前綴或其他方法做到這一點。

這裏是代碼:

<script> 
    $(document).ready(function() { 
     $('#useredit').bind('submit', function() { 
      var form = $('#useredit'); 
      var data = form.serialize(); 
      $.post('entry.php', data, function(response) { 
       document.getElementById("usereditp").innerHTML = response;  
      }); 
      return false;   
     });    
    }); 
</script> 

<?php 
try { 
    echo'<div id="accordion">'; 
    foreach ($pdo->query('SELECT * FROM `user` order by nachname;') as $useredit) { 
     echo'<h3>'.$useredit['nachname'].', '.$useredit['vorname'].'</h3> 
     <div> 
     <p> 
     <form id="useredit" action="" method="post"> 
     <input type="hidden" name="formular" value="useredit"> 
     <input type="hidden" name="userid" value="'.$useredit['id'].'" /> 
     <input type="text" name="benutzer" value="'.$useredit['username'].'" /><br /> 
     <input type="password" name="password" placeholder="Passwort" /><br /> 
     <input type="text" name="vorname" value="'.$useredit['vorname'].'" /><br /> 
     <input type="text" name="nachname" value="'.$useredit['nachname'].'" /><br /> 
     <input type="text" name="tel" value="'[email protected]$useredit['tel'].'" /><br /> 
     <input type="checkbox" name="write"'; 
      if($useredit['schreiben'] == 1){ 
       echo "checked"; 
      } 
     echo' /> Schreibrechte &laquo;&raquo; 
     <input type="checkbox" name="delete" id="delete"> mit allen Schichten löschen 
     <input type="submit" value="Speichern" /> 
     </form> 
     </p> 
     </div>'; 
    } 
} catch (PDOException $e) { 
    echo "Datenbankfehler: Die Daten konnten nicht gelesen werden."; 
} 
?> 

回答

0

類(其可以用於多種元素)添加到每個形式並結合,要提交動作。然後,設置每個表單有一個唯一的ID並在jQuery中選擇它。

<script> 
$(document).ready(function() { 
    $('.usereditform').bind('submit', function() { 
     var form = $(this); 
     var data = form.serialize(); 
     $.post('entry.php', data, function(response) { 
      document.getElementById("usereditp").innerHTML = response;  
     }); 
     return false;   
    });    
}); 
</script> 

<?php 
try { 


echo'<div id="accordion">'; 
foreach ($pdo->query('SELECT * FROM `user` order by nachname;') as $useredit) { 
    echo'<h3>'.$useredit['nachname'].', '.$useredit['vorname'].'</h3> 
    <div> 
    <p> 
    <form id="useredit_'.$useredit['id'].'" class="usereditform" action="" method="post"> 
    <input type="hidden" name="formular" value="useredit"> 
+0

太棒了,那有效! 但是表單標籤應該是這樣的: '

' 謝謝! – undefined

+0

從來沒有使用PHP,因此不太熟悉語法 –