1

我正在尝试在初始屏幕 (JavaScript) 客户端验证表单,如果文本框中未输入任何文本,则显示警告框。单击提交警报框中的确定后,网页将返回初始屏幕。

如果输入了一些文本,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>

但是,检查空值的部分,显示警报框,但执行 phpfile,我收到以下错误:

致命错误:在第 12 行调用 phpfile.php 中未定义的函数 alert()

  1. 在警报框中单击“确定”后,我如何留在同一个 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 并期望它能够工作。让 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

您没有alert输入 Javascript 代码。你把它放在 PHP 代码中。而 PHP 没有alert.

于 2013-03-07T10:11:27.617 回答