我正在尝试序列化表单并使用POST方法使用ajax发送序列化数据。
的index.php
return max([(len(w), w) for w in s.split(" ")])
Jquery片段
<form id ="form" class = "form">
<input type = "text" name = "name" />
<input type = "number" name = "age" />
<input type = "number" name = "id" />
<input type = "submit" name = "submit"><br/>
</form>
<p id = "result"></p>
process.php
<script>
$(document).ready(function(){
$("#form").submit(function(){
var data = $("#form").serialize();
insertStudent(data);
return false ;
});
function insertStudent(data){
$.post("process.php" , { data : data} , function(str){
$("#result").html(str);
});
}
});
</script>
现在,结果是:
注意:未定义的索引:第3行的C:\ xampp \ htdocs \ try.php中的名称
当我试图回显$ _POST [“data”]时,结果是:
名=艾哈迈德&安培;年龄= 111和ID = 222
我如何单独使用每个名称,例如:$ _POST [“name”] ... $ _POST [“age”] ... $ _POST [“id”]?
答案 0 :(得分:1)
问题在于您将数据发送到服务器的方式:
{data: data}
将序列化数据转换为一个参数,而不是serialize()收集的一系列参数。只需将其更改为:
data
编辑(添加明确示例): 以下(及以上)有效。如果它不适合您,您的PHP代码中还有其他错误。
的index.php:
<?php
echo '<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#form").submit(function(){
var data = $("#form").serialize();
insertStudent(data);
return false ;
});
function insertStudent(data){
$.post("process.php" , data , function(str){
$("#result").html(str);
});
}
});
</script>
</head>
<body>
<p>test of form</p>
<form id ="form" class = "form">
<input type = "text" name = "name" />
<input type = "number" name = "age" />
<input type = "number" name = "id" />
<input type = "submit" name = "submit"><br/>
</form>
<p id="result"></p>
</body>
</html>';
?>
process.php:
<?php
print_r($_POST);
echo "<br/>";
foreach($_POST as $key=>$value){
echo $key.": '".$value."'<br/>";
}
?>
导致输出:
Array ( [name] => Whatevernameyoutype [age] => whateverageyoutype [id] => whateveridyoutype )
name: 'Whatevernameyoutype'
age: 'whateverageyoutype'
id: 'whateveridyoutype'
您可以使用$ _POST [&#34; KEYNAMEHERE&#34;];
来访问任何已发布的参数,而不是循环。答案 1 :(得分:1)
function insertStudent(data){
$.ajax({
url: 'process.php',
data: data,
type: 'POST',
dataType: 'json',
success: function(str){
$("#result").html(str);
}
});
}
然后在PHP文件中打印$ _POST:)