我有一个带有表单的主页面和另一个处理表单值的页面 这是2页的源代码
表单页面
<meta charset="UTF-8">
<title>Form Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="process.php" method="post" id="reg-form">
Username: <input type="text" id="username" name="username">
<br>
Password: <input type="password" id="password" name="password">
<br>
<button type="submit" id="submit-btn">Traditional Submit</button>
<button type="button" id="post-btn">$.Post Submit</button>
</form>
<script>
$("#post-btn").click(function(){
$.post("process.php",function(data){
alert(data);
});
});
</script>
处理页面
<?php
$username=$_POST["username"];
$password=$_POST["password"];
echo "Username: ".$username;
echo "<br>";
echo "Password: ".$password;?>
如果我点击“传统提交”按钮,它的效果非常好。
但是当我点击“$ .Post Submit”按钮时,我只是不断收到错误消息“通知:未定义索引......”
我无法弄清楚问题出在哪里,请提前帮助检查和修复,谢谢!
答案 0 :(得分:59)
您还必须选择并发送表单数据:
$("#post-btn").click(function(){
$.post("process.php", $("#reg-form").serialize(), function(data) {
alert(data);
});
});
查看jQuery serialize
方法的文档,该方法将表单字段中的数据编码为要发送到服务器的数据字符串。
答案 1 :(得分:8)
使用val()
获取文本框的值并将其存储在变量中。通过$.post
传递这些值。在使用$.Post Submit button
时,您实际上可以删除表单。
<script>
username = $("#username").val();
password = $("#password").val();
$("#post-btn").click(function(){
$.post("process.php", { username:username, password:password } ,function(data){
alert(data);
});
});
</script>
答案 2 :(得分:6)
Yor $.post
没有数据。您需要传递表单数据。您可以使用serialize()
发布表单数据。试试这个
$("#post-btn").click(function(){
$.post("process.php", $('#reg-form').serialize() ,function(data){
alert(data);
});
});