が、ここではコードの関連部分です: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";
参考に
まず、それはあなたのJavaScriptの構文エラーについて教えてくれます、ブラウザのコンソールをチェックしに行きます。その後、JavaScriptがテキストリテラル/文字列を許可する構文を読んでください。 – CBroe
私は問題がPHPの改行であると思う '\ n'。私はこれがJS出力を破るのを見ることができました。 – evolutionxbox
@evolutionxbox私はそう思っていましたが、そうではありません。その下の警告(コメントされたもの)がうまく機能するためです。 – Echoes