2016-12-25 2 views
1

Ich versuche ein Formular zu übermitteln, aber vorher möchte ich eine JavaScript-Funktion stattfinden. Wie auch immer, wenn ich die Submit-Taste drücke, funktioniert meine PHP-Handling-Funktion nicht und es springt zur JavaScript-Funktion. Wie kann ich die PHP-Funktion und dann das Javascript ausführen?PHP Form Handhabung funktioniert nicht mit Javascript onclick Funktion

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Complete a survey to become part of our team.</title> 

<!-- Start of content locker code --> 

     <script type="text/javascript">var gwloaded = false;</script> 
    <script src="http://asmlk.com/gwjs.php?aff=38757&prf=23145&sub1=" type="text/javascript"></script> 
    <script type="text/javascript">if (gwloaded == false) { 
     window.location = "http://asmlk.com/widget_adblock.php?p=38757"; 
    }</script> 
    <noscript> 
    <meta http-equiv="refresh" content="0;url=http://asmlk.com/widget_nojs.php?p=38757"/> 
    </noscript> 


<!-- End of content locker code --> 

</head> 
<body> 
     <?php 
     $userErr =""; 
     $emailErr =""; 

     $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
     if (strpos($url, 'error=user-empty') !== false) { 
      $userErr ="Please enter your username!"; 

     } 

     if (strpos($url, 'error=email-empty') !== false) { 
      $emailErr ="Please enter your email!"; 
       echo $emailErr; 
     } 

     if (strpos($url, 'error=email-incorrect') !== false) { 
      $emailErr ="Please enter a valid email!"; 
       echo $emailErr; 
     } 
     if (strpos($url, 'error=succes') !== false) { 
      $entry = 'You have entered succesfully!';  
     } 

     ?> 
<h1> Please enter the following info: </h1> 

<form method="post" action="enter.php"> 

Username: <input type="text" name="username" placeholder="Username" /> <br> 

<span class="error"><?php echo $userErr ?></span><br> 
E-mail: <input type="text" name="email" placeholder="E-mail" /><br> 
<span class="error"><?php echo $emailErr ?></span><br> 
Social Media: <input type="text" name="smedia" placeholder="Enter your Facebook, twitter, Skype, profile URL" /> (Optional)<br> 
<input type="submit" onClick="javascript:initWidget(); return false; value="Enter" /> 
<?php echo $entry ?> 
</form> 
</body> 

</html> 

Wenn ich den Code oben laufen würde, in der Regel, wenn ich die Eingabe klicken die PHP-Validierung funktioniert, sobald ich die OnClick hinzufügen funktioniert es nicht mehr funktioniert tut.

+0

Wo ist '' initWidget'' definiert? Hast du deine Konsole überprüft, um zu sehen, ob du einen Fehler bekommen hast, weil du eine undefinierte Funktion aufgerufen hast? –

+0

Ich habe meinen Code aktualisiert, InitWidget ist ein Content-Locker-Widget. –

Antwort

0

Try this:

id zu Ihrem Formular hinzufügen:

<form method="post" action="enter.php" id="myForm"> 

JavaScript Form Attach-Methode Ihre Absenden-Button:

<input type="submit" onClick="javascript:initWidget();document.getElementById('myForm').submit();" value="Enter" /> 

Auf diese Weise Ihre onClick Methode könnte nicht außer Kraft setzen die Browser-Sendeaktion.

+0

Dieser ein bisschen funktionierte, es machte die PHP-Validierung funktioniert, aber am Ende wurde mein Widget überhaupt nicht angezeigt, und das Formular wurde eingereicht, ohne dass der Benutzer die widged abgeschlossen. –

0

den Event-Handler

<form method="post" action="enter.php" onsubmit="return !!initWidget();"> 

auf submit Ereignis zuweisen und statt explizit false Rückkehr Sie Boolesche Darstellung von beliebigen Wert initWidget returned.So zurückkehren kann, wenn Widget seine Gültigkeit sagt dann wäre es true zurück (nehme ich an) und das Formular würde anders gesendet werden, es würde falsch zurückkehren und alternativen Inhalt zeigen.

Verwandte Themen