我用这个php生成以下html表单:
echo "<form name=\"userForm\">
Username:
<input type=\"text\" name=\"username\" />
<br />
First name:
<input type=\"text\" name=\"firstname\" />
<br />
Last name:
<input type=\"text\" name=\"lastname\" />
<br />
<input name=\"Submit\" type=\"submit\" value=\"Update\" onclick=\"submitUserInfo();return false\"/>
</form>";
由submitUserInfo处理,在这里:
function submitUserInfo() {
url = "edit_user.php?cmd=submitinfo&username="+document.userForm.username.value+"&firstname="+document.userForm.firstname.value+"&lastname="+document.userForm.lastname.value;
var xmlHttp=GetXmlHttpObject();
if(xmlHttp.responseText == 'true') {
alert(url);
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
//updateByUser(username);
}
}
我明确将网址定义为以
开头edit_user.php?cmd=submitinfo&username
然而,当按下提交按钮时,它会尝试将网址发送为
edit_user.php?username=
我无法弄明白为什么。我已经在我的网站上使用了上述技术和其他表格,并且找不到任何理由cmd = submitinfo&amp;被排除在外。
答案 0 :(得分:0)
使用像Firebug这样的工具来确定浏览器是否正在发送它而不使用cmd = submitinfo&amp;或者如果它在服务器端丢失了。
答案 1 :(得分:0)
变化:
url = "edit_user.php?cmd=submitinfo&username="+document.userForm.username.value+"&firstname="+document.userForm.firstname.value+"&lastname="+document.userForm.lastname.value;
为:
var url = "edit_user.php?cmd=submitinfo&username="+document.userForm.username.value+"&firstname="+document.userForm.firstname.value+"&lastname="+document.userForm.lastname.value;
在尝试使用之前,您必须声明url
变量。
另外,请避免echo
直接HTML到页面。你完成它的方式是调试,更新和风格化的绝对痛苦。
答案 2 :(得分:0)
像jQuery这样的框架对于这样简单的任务并不是真正需要的,尽管如果您计划在您的网站上实施更多JavaScript,我建议您先查看。
使用jQuery的代码看起来像这样:
$("#<id of form goes here>").submit(function ()
{
$.ajax({
data: {
"username": $("#<id of username-input goes here>").val(),
"firstname": $("#<id of firstname-input goes here>").val(),
"lastname": $("#<id of lastname-input goes here>").val()
},
url: "edit_user.php"
});
return false;
});
看起来好一点,我想:)
也;使用框架 - 特别是jQuery - 负责浏览器的解决方案..所以你不必......照顾他们,就是:)
答案 3 :(得分:0)
我认为您需要将按钮的类型从“提交”更改为“按钮”:
<input name=\"Submit\" type=\"button\" value=\"Update\" onclick=\"submitUserInfo();return false\"/>