2016-05-16 5 views
0

Ich bin neu in Javascript und ich habe ein Formular mit mehreren senden Funktion mit Javascript und PHP wird aktualisiert. Ich kann die Benachrichtigungen anzeigen, aber nicht auf die neue Seite wechseln, wenn die Seite aktualisiert und nicht übertragen wird.
Mein Java Script:Mehrere submit Javascript - Seite wird aktualisiert

<script> 
function submitFunction(i) 
{ 
    if(i==1){ 
     alert("Transferring to page1.php"); 
     document.flight_select.action="page1.php"; 
     document.flight_select.submit(); 
    } 
    if(i==2){ 
     alert("Transferring to searchflights.php"); 
     document.flight_select.action="search_flights.php"; 
     document.flight_select.submit(); 
    } 
} 
</script> 

Das ist mein PHP-Code:

echo " 
    <form id=\"flight_select\" method=\"POST\">; //Some formatting code follows this for displaying table; 
echo "<tr><td colspan=\"2\" > 
      <input type=\"submit\" value = \"< New Search\" onClick=\"submitFunction(2)\";/></td> 
      <td colspan=\"3\"><center>"."<input type=\"submit\" value=\"Make Booking for selected flight >\" onClick=\"submitFunction(1)\"/>"."</center> 
      </td></tr>"; 
+0

Nun, Sie haben ein Formular senden und Sie legen die Aktion und senden Sie das Formular erneut? – epascarello

+0

Nun, es gibt zwei Formulare auf dem Formular angezeigt, wenn der Benutzer auf die Schaltfläche "Neue Suche" klickt, muss er zu search_flights.php umgeleitet werden (die gleiche Seite mit Werten zurückgesetzt) ​​und wenn er Booking klicken muss er umgeleitet werden zu einer anderen Seite. Ich habe eine Funktion submitFunction gemacht und übergebe die Werte 1 und 2. In meinem Fall erscheinen die Alarme korrekt, aber ich werde nicht übertragen. Ich habe nicht Aktions-Tag in HTML verwendet, wie ich Aktion einstellen und mit Javascript senden. Hoffe das klärt meine Frage. – adave

+0

Aber Sie klicken auf einen Absenden-Button und senden Schaltflächen senden ... – epascarello

Antwort

0

Du hast nicht die ursprüngliche Vorlage aufheben, die durch den Klick ausgelöst. Die Verwendung von return false ist eine Möglichkeit, den standardmäßigen Click-Ereignishandler abzubrechen, damit das Formular nicht übermittelt wird, bevor die Übermittlung ausgeführt werden kann. In Ihrem Code ist der einfachste Weg dies zu tun onClick="submitFunction(2);return false".

Darüber hinaus nicht in Betracht ziehen onClick="javascriptcode", aber Handler von JavaScript-Seite, und auch nicht mit echo zur Ausgabe von HTML, um die Trennung von Code und Präsentation beizubehalten.

+0

Danke für die Lösung der Frage. Ich habe den Code geändert und schreibe den endgültigen Code unten. :) – adave

0
As per your suggestion, I modified the code to look something like this and that resolved my issue: 

<script> 
function submitFunction(i) 
{ 
    if(i==1){ 
     alert("Page1.php"); 
     document.getElementById("flight_select").action="page1.php" 
     document.getElementById("flight_select").submit(); 
    } 
    if(i==2){ 
     alert("searchflights.php"); 
     document.getElementById("flight_select").action="search_flights.php" 
     document.getElementById("flight_select").submit(); 
    } 

} 
</script> 

<html> 
<head><title>Multiple submit test</title></head> 
<body> 
<form id="flight_select" method="POST"> 
First Name: <input type="text" name="fname"/> 
<input type="submit" value="Click for page1.php!" onClick="submitFunction(1);return false;"/> 
<input type="submit" value="Click for search_flights!" onClick="submitFunction(2);return false;"/> 
</form> 
</body> 
</html> 
Verwandte Themen