从PHP调用的JS函数在Chrome中运行良好但在Firefox

时间:2017-03-27 16:53:34

标签: javascript php html browser

我有这个简单的代码,允许用户搜索网页中的某些内容。该代码在Chrome和Opera中运行良好,但在Firefox和Explorer中却没有。在上面提到的最后两个浏览器中,一旦发布表单,页面就会自行刷新而不是重定向到结果页面。

为了在所有主流浏览器中使用,我需要添加或修改哪些内容?

感谢您的关注。

代码:

<?php
if($_POST[search2]){

    if(!empty($_POST[text_search])){
        echo "<script type='text/javascript'> window.open('search_results.php?q=".$_POST[text_search]."','_parent'); </script>";
    }else{
        echo "<script type='text/javascript'> alert ('You must enter something'); </script>";
    }   
}
?>
<html>
<head></head>

<body>
<form method="post" action="" name="formsearch">
        <input name="text_search" class="input_search" type="text" placeholder="Enter your search">
        <input type="image" src="search.png" id="search2" value="search" name="search2"/>
    </form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

<html>
<head>
<?php
if($_POST['search2']){

    if(!empty($_POST['text_search'])){
        echo "<script type='text/javascript'> window.open('search_results.php?q=".$_POST['text_search']."','_parent'); </script>";
    }else{
        echo "<script type='text/javascript'> alert ('You must enter something'); </script>";
    }   
}
?>
</head>

<body>
<form method="post" action="" name="formsearch">
        <input name="text_search" class="input_search" type="text" placeholder="Enter your search">
        <input type="image" src="search.png" id="search2" value="search" name="search2"/>
    </form>
</body>
</html>

你只需要把你的php标签生成JS。 我还在$ _POST索引中加上引号。

答案 1 :(得分:0)

input type =“image”将图像定义为提交按钮,但从不将post数组中的值传递给服务器。替代使用图像作为提交,尝试使用按钮。

替换

<input type="image" src="search.png" id="search2" value="search" name="search2"/>

<button type="submit" name="search2" value="search"><img src="search.png" alt="search"></button>

还要为$ _POST元素使用引号。

if($_POST['search2']){

if(!empty($_POST['text_search'])){
    echo "<script type='text/javascript'> window.open('search_results.php?q=".$_POST['text_search']."','_parent'); </script>";
}else{
    echo "<script type='text/javascript'> alert ('You must enter something'); </script>";
}   
}