Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重定向在PHP中不起作用_Php_Jquery - Fatal编程技术网

重定向在PHP中不起作用

重定向在PHP中不起作用,php,jquery,Php,Jquery,我正在使用jqueryautocomplete,并试图在单击建议或按enter键时使其直接转到链接。以下是我使用的代码: <script> $(function() { $( "#search" ).autocomplete({ source: 'search.php', select: function(event, ui) { $(this).val(ui.item.value);

我正在使用jqueryautocomplete,并试图在单击建议或按enter键时使其直接转到链接。以下是我使用的代码:

        <script>
        $(function() {
        $( "#search" ).autocomplete({
        source: 'search.php',
        select: function(event, ui) {
         $(this).val(ui.item.value);
         $(this).parents("form").submit();  // this will submit the form.
   }
        });
        });
</script>
然后我有了搜索的php代码:'

if ($_POST['search'] != null) {
                                //die("asdf: " . $_POST['search']);
                                $search = $_POST['search'];
                                $result = mysqli_query($con,"SELECT * FROM question WHERE text LIKE '%$search%'");
                                while($row = mysqli_fetch_array($result)) {
                                $text = $row['text'];
                                $question_id = $row['question_id'];
                                //die($search . " " . $text);
                                if ($search == $text){
                                    header("Location: http://localhost/showstats.php?question_id=$question_id");
                                    die();
                                }
                                echo "<br>";
                                echo " <a href=\"showstats.php?question_id=" . $question_id;
                                echo "\">$text</a> ";
                                //echo "<br>";
                            }}
问题是当我点击suggestion时,它不会重定向到showstats.php?question_id=$question_id,而是给我一个空白的结果页面。
当我插入die$search$文本在if语句中,它向我显示了两次文本,因此我知道它进入了if语句的主体。

这是因为您的标题已经发送,您已经开始输出,因此重定向将不起作用


尝试缓冲您的输出。

也值得转义您的sql

$search=$_POST['search']; $search=mysqli\u real\u escape\u string$search;
$result=mysqli_query$con,从“%$search%”或diemysqli_error$con等文本所在的问题中选择*

当您选择一个建议时,事件会在客户端发生,因此PHP中的这段代码实际上是不必要的:

if ($search == $text) {
    header("Location: http://localhost/showstats.php?question_id=$question_id");
    die();
}
相反,当您选择建议时,请尝试从jQuery触发重定向:

<script>
$(function() {
    $( "#search" ).autocomplete({
        source: 'search.php',
        select: function(event, ui) {
            // This will redirect you to whatever URL is in ui.item.value:
            window.location = ui.item.value;
       }
    });
});
</script>

在showstats.php中添加错误报告。它给了你任何消息吗?你从来没有真正关闭while{loop,因此你遇到了一个解析错误。或者你从来没有关闭if{语句,其中一个。不,事实上它没有重定向它停留在搜索所在的stats.phppage上,并且没有显示结果。这就是它根本没有重定向的问题…@ohgod为什么我看到它关闭了…还没有很好地缩进closed@Ohgodwhy我在发布代码时出错,但ui.item.value的值是建议文本,而不是e showstats.php?question_id=$question_id。我试图使用:window.location.href=showstats.php?question_id=ui.item.value来输入我的链接,但从逻辑上讲,它返回建议文本,而不是我需要的question_id,因为我让search.php返回文本而不是question_id。那么,我该怎么做呢?我想出来了。我需要在我的s中设置question_id的值earch.php。谢谢。