1

初期画面 (JavaScript) クライアント側でフォームを検証し、テキスト ボックスにテキストが入力されていない場合は警告ボックスを表示しようとしています。アラート送信ボックスで [OK] をクリックすると、Web ページは最初の画面に戻ります。

テキストが入力された場合、JavaScript は PHP ファイルにリダイレクトする必要があります。

これまでのところ、私はこのコードを思いつきました:

<HTML> 
<HEAD>
<TITLE>Discography Search</TITLE> 

<script language="javascript" type="text/javascript" >

function validate(){
var username=document.getElementById('name').value;
if(username.length==0)
    {
        alert("Enter something in Searchbox");
}
}
</script>

</head>


<BODY> 
<H1><center>Search</center></H1> 

<FORM ACTION="phpfile.php" METHOD=POST id="submit1"> 
Search: <INPUT NAME=name id="name"><BR> 
Type:    <SELECT NAME="dropdown">
<OPTION value="A" ID="A">ARTIST</OPTION>
<OPTION value="A" ID="B">B</OPTION>
<OPTION value="C" ID="C">C</OPTION>
</SELECT>
<br><br><br>
<INPUT TYPE=submit name="submit" onclick="validate()"> 
<INPUT TYPE=reset>
</FORM>

および phpfile.php :

<html>
<head><title><center> Search Result</center></title></head>
<body>

<?php 
//echo $_POST["name"]; 
//echo $_POST["dropdown"]; 
$name=$_POST["name"];
$dropdown=$_POST["dropdown"];
if(empty($name)){

    alert("Please enter the something in the searchbox");
}
else{
    $url="http://www.allmusic.com/search/".$dropdown."/".$name."/";
    echo $url;
    //echo '
}   

?>

</body>
</html>

ただし、null 値がチェックされる部分、アラート ボックスは表示されますが、phpfile が実行され、次のエラーが表示されます。

致命的なエラー: 12 行目の phpfile.php の未定義関数 alert() の呼び出し

  1. アラート ボックスで [OK] をクリックしたときに、同じ js ページにとどまるにはどうすればよいですか?
  2. js ファイルに alert() を含めることができないのはなぜですか??

ありがとう!

4

4 に答える 4

4
  1. ボタンに onclick を設定するのではなく、validate 関数の結果を返すフォームに onsubmit を設定します。

    <FORM ACTION="phpfile.php" METHOD=POST id="submit1" onsubmit="return validate()">
    

    次に、検証関数で「false」を返します。これにより、フォームが送信されなくなります。

  2. PHP (サーバーで実行) 内で javascript (ブラウザーで実行) を実行することはできません。

于 2013-03-07T09:50:36.360 に答える
1

javascriptとphpは、phpにjavascriptを含めて、それが機能することを期待できない2つの異なるものです。phpを取得して、ページにフラグを吐き出します(例:$ notvalid)。これをページにエコーします。例:

    <script>
 var notvalid = <?php echo $notvalid; ?> 
</script>

次に、javascriptを使用してjs変数notvalidの値を確認します。

于 2013-03-07T09:51:21.300 に答える
1

このように使用してください

<?php 
//echo $_POST["name"]; 
//echo $_POST["dropdown"]; 
$name=$_POST["name"];
$dropdown=$_POST["dropdown"];
if(empty($name)){
?>
   <script type="text/javascript">
    alert("Please enter the something in the searchbox");
   </script>
<?php
}
else{
    $url="http://www.allmusic.com/search/".$dropdown."/".$name."/";
    echo $url;
    //echo '

}   

?>

于 2013-03-07T09:51:35.807 に答える
1

alertJavascript コードを入れていません。それを PHP コードに入れます。そしてPHPにはありませんalert

于 2013-03-07T10:11:27.617 に答える