我正在使用ajax提交表单进行测试(提交给我自己的页面“new1.php”)
我想要的是,点击提交按钮后,它将回显名字和姓氏。但我不知道为什么我提交后看不到名字和姓氏。
这是new1.php页面
<?php
echo $_POST['firstname']."<br>";
echo $_POST['lastname']."<br>";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<form id="myform" action="new1.php" method="post">
Firstname : <input type="text" name="firstname"> <br>
Lastname : <input type="text" name="lastname"> <br>
<input type="submit" value="Submit">
</form>
<script>
// this is the id of the form
$("#myform").submit(function(e) {
$.ajax({
type: "POST",
url: 'new1.php',
data: $("#myform").serialize(), // serializes the form's elements.
success: function(data)
{
alert('yeah'); // show response from the php script.
}
});
e.preventDefault(); // avoid to execute the actual submit of the form.
});
</script>
</body>
</html>
答案 0 :(得分:3)
在您的情况下,最好使用PHP代码中的json_encode检索值为JSON格式,然后通过数据对象访问这些值。
示例:
PHP代码:
if($_POST)
{
$result['firstname'] = $_POST['firstname'];
$result['lastname'] = $_POST['lastname'];
echo json_encode($result);
die(); // Use die here to stop processing the code further
}
JS代码:
$("#myform").submit(function (e) {
$.ajax({
type : "POST",
url : 'new1.php',
dataType : 'json', // Notice json here
data : $("#myform").serialize(), // serializes the form's elements.
success : function (data) {
alert('yeah'); // show response from the php script.
// make changed here
$('input[name="firstname"]').text(data.firstname);
$('input[name="lastname"]').text(data.lastname);
}
});
e.preventDefault(); // avoid to execute the actual submit of the form.
});
答案 1 :(得分:2)
当您使用表单作为序列化时,您必须像这样检索。
像这样编辑你的ajax:
data: { formData: $("#myform").serialize()},
然后你可以在控制器中检索这样的内容:
parse_str($_POST['formData'], $var);
echo "<pre>";
print_r($var);
exit;
答案 2 :(得分:1)
从
改变alert('yeah'); // show response from the php script.
到
alert(data); // show response from the php script.
答案 3 :(得分:1)
在这里对javascript进行一些更改:
success: function(data)
{
$('#response').html(data); // show response from the php script.
}
在html代码中创建一个ID为response
<div id="response"></div>
答案 4 :(得分:1)
值firstname,lastname不显示,因为您通过ajax调用new1.php并且数据(firstname,lastname和页面代码)返回到java脚本变量(data),您需要将数据注入到文档中
试试这个
$.ajax({
type: "POST",
url: 'new1.php',
data: $("#myform").serialize(), // serializes the form's elements.
success: function(data) {
document.documentElement.innerHTML = data;
}
});