0

我开始研究 Web 开发,作为练习,我试图用 javascript 和 PHP 制作一个用于在 HTML 中重定向的表单。

HTML

<html>
<head>
<title>FORM</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="script.js" type="text/javascript"></script>
<form>
    <input type="text" name="url"><br>
    <input class="btn" type="button" id="send" value="Send" />
</form>
</body>
</html>

JavaScript

$(document).ready(function() {
$("#send").click(function(){
var url = $("#url").val();
$.ajax({
type: "POST",
url: "engine.php",
data: "url=" + url,
dataType: "html"
});

PHP

<?php
    session_start();

    $url        =   $_POST['url'];
        header("Location: /".$url.");

    session_destroy();
    exit;
?>

主要问题是似乎没有读取js。此外,我不知道 PHP 是否正确。怎么了?

4

3 回答 3

2

如果您想重定向到另一个 URL,则无需发出 AJAX 请求。此外,您目前的操作方式无论如何都不会重定向。

下面,当您的 click 函数触发时,它将从您的输入字段中获取 URL,并重定向到该页面。

<html>
<head>
<title>FORM</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">

    $(document).ready(function() {

        $("#form_name").submit(function(event){

            event.preventDefault();

            var url = $("#url").val();

            document.location.href = url;

        });

    })

</script>
<form id="form_name" name="form_name">
    <input type="text" name="url" id="url"><br>
    <input class="btn" type="submit" id="send" value="Send" />
</form>
</body>
</html>
于 2013-04-25T17:21:29.137 回答
1

您需要在输入中添加 id

<input type="text" name="url" id="url"><br>

而且 header() 在 ajax 中也不起作用

您需要使用 javascript 进行重定向

在php中

<?php
    session_start();

    $url        =   $_POST['url'];
    echo '<script>document.location.href = '.$url.'</script>';

    session_destroy();
    exit;
?>

并使用 ajax 响应功能将回显文本放入文档中

您也可以使用更好的方法(不使用 Ajax 并提交表单)

$(document).ready(function() {
$("#send").click(function(){
var url = $("#url").val();
window.location.href = url;
});

这是您的最佳答案如何在 JavaScript/jQuery 中重定向到另一个网页?

更新: 你还需要 delete ,标签,这里是 html 代码而不是......

<input type="text" name="url" id="url"><br>
<input class="btn" type="submit" id="send" value="Send" />
于 2013-04-25T17:23:53.427 回答
0

所以你认为你的javascript没有被执行?这是否意味着您已经调试过这个?

如果你的 javascript 都没有运行——包括你准备好的处理程序,那么服务器就没有找到 js 文件。如果您的某些 javascript 正在运行,则可能是错误导致它停止。您可能只需要进行一些调试。

于 2013-04-25T17:29:17.360 回答