2017-06-30 2 views
0

Kämpfen jetzt für ein paar Tage und Bearbeiten ein paar Codes, nur um mein Formular an die Prozess.php zu senden und dann das Ergebnis in das Div das Formular ist neu zu laden. Ich arbeite mit einem Bootstrap-Layout und möchte nicht, dass die Seite neu geladen wird/go to process.phpFormular senden Ergebnisse zum Laden in div

HTML-Formular funktioniert, wenn nicht von Ajax aufrufen, so dass das Formular und process.php in Ordnung ist. Nur Sache, die ich in Prozess auf

$_POST['toevoegen'] == "training toevoegen" 

weil mehr Formen process.php gehen, wenn ich die Übertragung es gelingen.

HTML Form nur ein Schnappschuss daraus, es hat mehr Werte drin.

<form id="form1" name="form1" method="post" action="process.php"> 
     <label>datum:</label> 
     <input name="datum" id="datum" size="10" type="text" autocomplete="off" /><br><br> 
     <label>club:</label> 
     <select name="clubid" id="club-list" onChange="gettrainer(this.value);"> 
     <option value="">Selecteer club</option> 
     <?php 
     foreach($results as $club) { 
     ?> 
     <option value="<?php echo $club["id"]; ?>"><?php echo $club["clubnaam"]; ? ></option> 
     <?php 
     } 
     ?> 
<input type="submit" id="submit" name="toevoegen" value="training toevoegen" /> 
</form> 

Der Ajax-Anruf ist so etwas, aber das wird im Moment überhaupt nicht funktionieren.

<script> 
     $(document).ready(function() { 

     $('#form1').on('submit', function (e) { 

      e.preventDefault(); 
      var form1 = document.getElementById("form1"); 
      var fd = new FormData(form1); 

      $.ajax({ 
      type: 'POST', 
      url: 'process.php', 
      data: fd, 
       success: function (response) { 
      $("#main").html(response); 
      } 
      }); 

     }); 

     }); 
    </script> 
+0

_ „Das Einzige, was i Check-in-Prozess auf $ _POST [ 'toevoegen'] "_ - und das ist das Problem; Da Sie hier auf das Ereignis "Formular absenden" reagieren, ist der Wert für den Übergabebutton nicht in dem Datensatz enthalten, den Sie mit 'new FormData (form1)' erstellen. Der einfachste Weg, dies zu beheben, wäre, ein verstecktes Feld in Ihren Formularen zu verwenden, um anzugeben, welche Aktion auf der Serverseite ausgeführt werden soll, so dass dies nicht davon abhängt, wie das Formular tatsächlich übermittelt wurde. – CBroe

+0

danke @CBroe, aber jetzt bekomme ich einen Fehler wie das Argument ist nicht optional in der Jquery. also denke ich, dass ich irgendwo noch einen fehler habe? –

+0

Welches Argument, wo? – CBroe

Antwort

0

änderte das Datenfeld Daten:. $ ('# Form1') serialisiert werden(),

<script> 
     $(document).ready(function() { 

     $('#form1').on('submit', function (e) { 

      e.preventDefault(); 
      $.ajax({ 
      type: 'POST', 
      url: 'process.php', 
      data: $('#form1').serialize(), 
       success: function (response) { 
      $("#main").html(response); 
      } 
      }); 

     }); 

     }); 
    </script>