2013-04-25 71 views
0

我开始学习Web开发,并将其作为练习尝试使用JavaScript和PHP在HTML中进行重定向。重定向URL表单

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

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

+0

$ url的值是什么? – Cooper 2013-04-25 17:14:05

+0

JavaScript在哪里?此外,似乎你有一个错字'$ _POST ['ur']' – brbcoding 2013-04-25 17:14:06

+1

头部不需要'/'只是使它 'header(“Location:/".$ url。”)' – samayo 2013-04-25 17:14:15

回答

2

如果您想重定向到另一个URL,则无需发出AJAX请求。另外,你此刻的做法不会重定向。

下面,当你的点击功能触发时,它将从你的输入字段获得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> 
+0

-1,'$(“#url”)。val();'返回null – Cooper 2013-04-25 17:31:11

+0

如果我按照我输入的结果'url = WhatIwrote'而不是如果我按下按钮我有'/ undefined' – Mitro 2013-04-25 17:34:19

+0

也许你编辑你的代码,但在这个答案你没有任何使用'id =“url”'和$(“#url”)。val()的标签;不应该为你工作 – Cooper 2013-04-25 17:36:38

1

你需要添加ID输入

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

而且头()不阿贾克斯工作

你需要在PHP

使用JavaScript重定向为

<?php 
    session_start(); 

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

    session_destroy(); 
    exit; 
?> 

并把echo te XT与AJAX回复功能文档

还可以使用更好的方法(用了Ajax和提交表单)

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

这里是最好的答案,你How to redirect to another webpage in JavaScript/jQuery?

UPDATE: 你也需要删除,标签,这里的html代码而不是...

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

与你写的第二个代码什么也没有发生,如果我点击按钮,而不是我按?输入我有?url =,我不想那 – Mitro 2013-04-25 17:47:49

+0

url的值是什么? – Cooper 2013-04-25 21:51:37

+0

@AlessioMTX你需要删除标签,我更新了答案 – Cooper 2013-04-26 13:38:34

0

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

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