我开始研究网页开发,作为练习,我试图用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是否正确。怎么了?
答案 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正在运行,则可能是错误导致它停止。您可能只需要进行一些调试。