2016-12-25 13 views
1

フォームを送信しようとしていますが、その前にJavaScript関数を実行します。とにかく、私はPHPの処理関数は動作しません、それはJavaScriptの機能にスキップする送信ボタンを押したとき。 PHP関数とJavaScriptをどのように実行できますか?私は上記のコードを実行したい場合PHPフォームの処理がjavascript onclick関数で機能しない

<!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> 

、通常、私はクリック時には、それはもはや作品をdoesntの機能追加するとPHPの検証は、作品Enterボタンをクリックしたとき。

+0

'' initWidget''はどこに定義されていますか?未定義の関数を呼び出すためにエラーが発生したかどうかをコンソールで確認しましたか? –

+0

自分のコードを更新し、InitWidgetにコンテンツロッカーウィジェットを更新しました。 –

答えて

0

はこれを試してみてください:

は、フォームにidを追加します。

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

はjavascriptのフォームはあなたのボタンにする方法を提出取り付け:

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

この方法であなたのonClickメソッドはオーバーライドしない場合がありますブラウザの送信アクション。

+0

これはちょっとしたことで、PHPの検証作業をしましたが、最終的には私のウィジェットはまったく表示されず、ユーザーはウィジェットを完成させることなくフォームが提出されました。 –

0

submitイベント

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

、代わりに明示的に(私は仮定)を使用すると、ウィジェットがその有効を言うならば、それはtrueを返しますどのような値initWidget returned.Soのブール表現を返すことができfalse返すのにイベントハンドラを割り当てます。フォームはfalseを返し、代替コンテンツを表示するという賢明な方法で提出されます。

関連する問題