Я посетил следующую ссылку
Теперь у меня есть 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="/jquery.min.js">
</script>
<link rel="stylesheet" href="/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.
Сделайте два изменения
action="test.php"
на action=""
или вы можете удалить его, его не нужно.return false;
return true;
в js, $('#f1').submit(function()
(объяснение того, когда следует использовать return true/false, в настоящее время вы запросили действие отправки, которое было вызвано из функции jquery, если из javascript/jquery вы возвращаете false, это означает, что текущий запрос, т.е. submit, не будет выполняться. true, мы будем использовать false, если мы проверяем что-то, и пользователь не добавил правильный вывод, поэтому мы не хотим отправлять страницу до тех пор, пока он не поправит данные. Также в этом случае действие не требуется как вы отправляете через jquery, чтобы вы могли удалить атрибут action = "" из формы)
также у вас уже есть html
теги в test.php, в том числе внутри test2.php создадут проблемы.
предложение test 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="/jquery.min.js">
</script>
<link rel="stylesheet" href="/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>
Это должно решить вашу проблему. заменить линию
<form method="post" id="f1" name="f1" action="test.php">
с
<form method="post" name="f1" action="">
вы не можете использовать "id" в "форме",
Может быть, вы найдете свое решение..............
<?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="/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>
t understand what do you mean? I
знаю, что запуск этой страницы дает только желаемый результат, но я хочу, чтобы результат в test.php только не хотел загружать новую страницу :)
foreach
эквивалентен$arr = $_FORM
.