2013-04-25 68 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正在運行,則可能是因爲錯誤導致它停止。你可能只需要做一些調試。