我访问了以下 Link
现在我有2个示例文件test2.php的内容
<!DOCTYPE html>
<html>
<head>
<title> Form </title>
</head>
<body>
<?php include_once("test.php"); ?>
</body>
</html>
test.php的内容
<?php
if (isset($_POST['submit'])) {
$arr=array();
foreach ($_POST as $key => $value) {
$arr[$key]=$value;
}
print_r($arr);
}
?>
<!DOCTYPE html>
<html>
<head>
<title> Form </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<link rel="stylesheet" href="css/main.css" />
</head>
<body>
<div id="content" id="login_form">
<form method="post" id="f1" name="f1" action="test.php">
<table>
<tr>
<td>Name :</td><td><input type="text" name="name"/></td>
</tr>
<tr>
<td>Register Number :</td><td><input type="text" name="regno"/></td>
</tr>
<tr>
<td>Date of Birth :</td><td><input type="text" name="dob"/></td>
</tr>
<tr>
<td><input type="submit" id="b1" name="submit" value="Submit" style="font-size:16px;"/></td>
</tr>
</table>
</form>
</div>
<script>
$('#f1').submit(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('post'),
url: $(this).attr('test.php'),
success: function(response) {
$('#content').html(response);
}
});
return false;
});
</script>
</body>
</html>
test2.php在我点击提交后显示表单。I want to display the values entered in the form and the form
但我只看到表单。
是因为$ _POST是空的还是因为我在页面结构中犯了错误?
编辑:我希望在test2.php页面中加载表单提交的结果。
答案 0 :(得分:1)
进行两项更改
action="test.php"
更改为action=""
,或者您可以将其删除,不需要。return false;
return true;
更改为$('#f1').submit(function()
醇>
(解释何时使用return true / false,当前你请求了一个提交动作,它是从jquery函数调用的,如果你从javascript / jquery返回false,则表示当前请求即提交不会发生。 如果是真的,提交将发生。如果我们验证某些内容并且用户没有添加正确的输出,我们会使用false,因此我们不想在更正数据之前提交页面。 在这种情况下也不需要操作,因为您通过jquery提交,因此您可以从表单中删除action =“”属性)
你在test.php中已经有html
个标签,包括在test2.php里面会产生问题。
建议直接调用test.php,你不需要test2.php。
这是test.php的完整代码,
<?php
if (isset($_POST['submit'])) {
$arr=array();
foreach ($_POST as $key => $value) {
$arr[$key]=$value;
}
print_r($arr);
}
?>
<!DOCTYPE html>
<html>
<head>
<title> Form </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<link rel="stylesheet" href="css/main.css" />
</head>
<body>
<div id="content" id="login_form">
<form method="post" id="f1" name="f1" action="">
<table>
<tr>
<td>Name :</td><td><input type="text" name="name"/></td>
</tr>
<tr>
<td>Register Number :</td><td><input type="text" name="regno"/></td>
</tr>
<tr>
<td>Date of Birth :</td><td><input type="text" name="dob"/></td>
</tr>
<tr>
<td><input type="submit" id="b1" name="submit" value="Submit" style="font-size:16px;"/></td>
</tr>
</table>
</form>
</div>
<script>
$('#f1').submit(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('post'),
url: $(this).attr('test.php'),
success: function(response) {
$('#content').html(response);
}
});
return true;
});
</script>
</body>
</html>
答案 1 :(得分:0)
你可以找到你的解决方案..............
<?php
if(isset($_POST['submit'])){
$arr=array();
foreach( $_POST as $key => $value ){
$arr[$key]=$value;
}
print_r($arr);
}
?>
<!DOCTYPE html>
<html>
<head>
<title> Form </title>
<link rel="stylesheet" href="css/main.css" />
</head>
<body>
<div id="content" id="login_form">
<form method="post" id="f1" name="f1" action="test.php">
<table>
<tr>
<td>Name :</td><td><input type="text" name="name"/></td>
</tr>
<tr>
<td>Register Number :</td><td><input type="text" name="regno"/></td>
</tr>
<tr>
<td>Date of Birth :</td><td><input type="text" name="dob"/></td>
</tr>
<tr>
<td><input type="submit" id="b1" name="submit" value="Submit" style="font-size:16px;"/></td>
</tr>
</table>
</form>
</div>
</body>
</html>
答案 2 :(得分:0)
这必须解决您的问题。 替换
行<form method="post" id="f1" name="f1" action="test.php">
带
<form method="post" name="f1" action="">
你不能在“形式”中使用“id”