2017-06-13 6 views
-1

が、ここではコードの関連部分です:JavascriptのアラートがポップアップしないPHPの変数で、私は基本的なPHPの検証と簡単なお問い合わせフォームを持っている

$err = ''; 

    if(!preg_match("/^[a-zA-Z ]*$/",$name)) { 
     $err .= "Name : Only letters and white space allowed.\n"; 
    } 
    if(strlen($name)<3){ 
     $err .= "Name : Please enter your full name.\n"; 
    } 
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     $err .= "Email : Invalid email format.\n"; 
    } 
    if(strlen($email)<8){ 
     $err .= "Email : Okay, how about using a correct email address?\n"; 
    } 
    if(strlen($message)<30){ 
     $err .= "Message : Message too short.\n"; 
    } 

    if($err != ''){ 
     $err = 'There were few errors : \n '.$err; 

     //THE ALERT BELOW DOESN'T WORKS, gets added into body code, but does not popup 
     echo '<script type="text/javascript">alert("'.$err.'");</script>'; 

     // While this one works well 
     //echo '<script type="text/javascript">alert("This alert works. \nThe one above does not.");</script>'; 
    } 
    else{ 
     //whatever 
    } 

問題があるという条件であれば、最後でalert()ボディコードでは追加されますがポップアップは表示されません。私が通常のテキストを$errの代わりに使用すると(コメントアウトされたもののように)、それはうまくいきます。

私はこれまで何度もこの問題を抱えていましたが、どうしてそれが起こるのか分かりませんでした。私はいつもアラートを削除し、divや何かに応答メッセージを表示しましたが、なぜ??この

$err .= "Name : Please enter your full name.\\n"; 

参考に

+0

まず、それはあなたのJavaScriptの構文エラーについて教えてくれます、ブラウザのコンソールをチェックしに行きます。その後、JavaScriptがテキストリテラル/文字列を許可する構文を読んでください。 – CBroe

+0

私は問題がPHPの改行であると思う '\ n'。私はこれがJS出力を破るのを見ることができました。 – evolutionxbox

+0

@evolutionxbox私はそう思っていましたが、そうではありません。その下の警告(コメントされたもの)がうまく機能するためです。 – Echoes

答えて

0
if($err != ''){ 
     $err = 'There were few errors : \n '.$err; 


     echo '<script type="text/javascript">alert('.$err.');</script>'; 
    } 
    else{ 
     //whatever 
    } 
+0

このコードでは質問に答えることができますが、問題の解決方法および/または理由を説明する追加のコンテキストを提供すると、回答の長期的価値が向上します。 – Badacadabra

関連する問題