2017-04-03 18 views
-2

我有這樣的代碼,將得到兩個texboxes(stud_firstname和stud_lastname)的輸入:在URL中添加兩個參數在JavaScript

function chkstudname(val) 
    { 
    var firstName = $("input[name=stud_firstname]").val(); 
    var lastName = $("input[name=stud_lastname]").val(); 
     $.ajax ({ 
     type:"POST", 
     url:"check_stud_name.php", 
     data:'fname='+firstName+'lname='+lastName, 
     success: function(data){ 
      $("#msg_stud_name").html(data); 
     } 
     }); 
    } 

我想以某種方式產生這樣的網址:

check_stud_name.php?fname=Bill&lname=GATES 

我可以做到這一點phpjavascipt是不完全是我的事情,所以我不知道該怎麼做。上面的代碼工作,但它只分配fnamelname未知。

所以,如果我投入的紙幣的名字框,蓋茨的姓氏中,給這個PHP代碼:

$fname = $_GET[fname]; 
$lname= $_GET['lname']; 

echo $fname."<separator to check if it works>".$lname; 

輸出爲:

BILLlname=GATES<separator to check if it works> 

,並給出了一個錯誤說找不到$_GET['lname']。因此,它是安全的假設的fnameBILLlname=GATES和「L-NAME = ...」的代碼不起作用,因爲它與「FNAME = ...」



如何能合併我在URL中添加了兩個變量/參數並使lname=...工作?我試圖把&在他們之間,但它並沒有在所有的工作..

+3

除非你所期望的'&'就神奇地出現所有的本身,我建議_you_插入一個兩個名稱=值對之間。 //你在這裏完全忽略了URL編碼。看看jQuery的'.serialize',爲你處理這樣的東西。 – CBroe

+0

'check_stud_name.php?fname = Bill&lname = GATES'是GET格式,但您使用POST提交表單。 – aynber

回答

1

這是很基本的只是添加&

變化

data:'fname='+firstName+'lname='+lastName, 

data:'fname='+firstName+'&lname='+lastName, 
0

除鐵器

URL編碼形式數據是一組key = value p以&個字符分隔。你需要包含&字符。

逃逸

某些字符(如=&)具有在URL中的特殊含義。

在將它們添加到URL之前,您應該避開用戶輸入。

POST請求

jQuery的放data參數的值在請求體 POST請求

如果你想用查詢字符串做一個POST請求,那麼你需要明確地將它放在URL的查詢字符串中。

代碼

$.ajax ({ 
    type: "POST", 
    url:"check_stud_name.php?fname=" + encodeURIComponent(firstName) + "?lname=" + encodeURIComponent(lastName), 
    // etc 

或者:GET

它看起來像你想獲得的數據,因此你應該做一個GET請求而不是POST請求。

你可以通過jQuery的data場中的目標,並有jQuery的逃避它,並形成你的查詢字符串:

$.ajax ({ 
    type: "GET", 
    url: "check_stud_name.php", 
    data: { 
     fname: firstName, 
     lname: lastName 
    } 
    // etc