重定向URL表单

时间:2013-04-25 17:12:47

标签: php javascript html ajax

我开始研究网页开发,作为练习,我试图用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是否正确。怎么了?

3 个答案:

答案 0 :(得分:2)

如果要重定向到另一个URL,则无需发出AJAX请求。此外,你现在这样做的方式也不会重定向。

下面,当您的点击功能触发时,它会从您的输入字段中获取网址,然后重定向到该页面。

<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>

答案 1 :(得分: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响应函数将echo文本放入文档中

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

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

这是您的最佳答案How to redirect to another webpage in JavaScript/jQuery?

<强>更新 你还需要删除,标签,这里的html代码而不是......

<input type="text" name="url" id="url"><br>
<input class="btn" type="submit" id="send" value="Send" />

答案 2 :(得分:0)

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

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