我有这个代码可以获得两个texbox的输入(stud_firstname和stud_lastname):
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
我可以在php
中完成,但javascipt
不是我的事情,所以我不知道该怎么做。上面的代码有效但只分配了fname
,lname
未知。
因此,如果我将BILL输入到名字框,并将GATES输入到姓氏框,则给出此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']
。因此,可以安全地假设fname
的值为BILLlname=GATES
且&#34; lname = ...&#34;代码无法正常工作,因为它与&#34; fname = ...&#34;
如何在网址中放入两个变量/参数并使lname=...
有效?我尝试将&
放在它们之间,但它根本不起作用..
答案 0 :(得分:1)
非常简单,只需添加&
变化
data:'fname='+firstName+'lname='+lastName,
到
data:'fname='+firstName+'&lname='+lastName,
答案 1 :(得分:0)
URL编码表单数据是一组以&
个字符分隔的键=值对。您需要实际包含&
个字符。
某些字符(例如=
和&
)在网址中具有特殊含义。
在将用户输入添加到URL之前,您应该转义用户输入。
jQuery在请求正文中为POST请求添加data
参数的值。
如果要使用查询字符串发出POST请求,则需要将其明确地放在URL的查询字符串中。
$.ajax ({
type: "POST",
url:"check_stud_name.php?fname=" + encodeURIComponent(firstName) + "?lname=" + encodeURIComponent(lastName),
// etc
看起来您正在尝试获取数据,因此您应该发出GET请求而不是POST请求。
你可以将jQuery的data
字段传递给一个对象并让jQuery对其进行转义并为你形成查询字符串:
$.ajax ({
type: "GET",
url: "check_stud_name.php",
data: {
fname: firstName,
lname: lastName
}
// etc