请问,有人可以为我的问题发布更正和测试的错误代码吗?程序确实 - 22.php具有形式。当用户输入并单击"提交"按钮时,结果应从 23 .php 中获取,并在 22 日以div 显示.php
我已经尝试了下面的解决方案,但没有一个能解决我的问题;
1) 我更改为: $("#testform").submit(function(event){
2)我在末尾添加了"return false;",以防止它实际提交表单并重新加载页面。
3)清除我的浏览器缓存
我可以看到我的计算机发生了什么程序;
1) 单击提交后没有收到错误消息。
2)我可以看到页面的选项卡快速重新加载,并且输入的文本字段被清除。
3) 未显示错误消息或结果。
<html>
<head>
<title>My first PHP page</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("#btn").click(function(event){
event.preventDefault();
var myname = $("#name").val();
var myage = $("#age").val();
yourData ='myname='+myname+'&myage='+myage;
$.ajax({
type:'POST',
data:yourData,//Without serialized
url: '23.php',
success:function(data) {
if(data){
$('#testform')[0].reset();//reset the form
$('#result').val(data);
alert('Submitted');
}else{
return false;
}
};
});
});
});
</script>
</head>
<body>
<form method="post" id="testform">
Name:
<input type="text" name="name" id="name" />Age:
<input type="text" name="age" id="age" />
<input type="submit" name="submit" id="btn" />
</form>
<div id='result'></div>
</body>
</html>
<?php
if ( isset($_POST['name']) ) { // was the form submitted?
echo "Welcome ". $_POST["name"] . "<br>";
echo "You are ". $_POST["age"] . "years old<br>";
}
?>
你不需要
更改你的PHP代码尝试使用提交事件提交表单...
$("#testform").submit(function(event){
use `dataType:json`; in your ajax ..
yourData =$(this).serialize();
你的 php
<?php
if ( isset($_POST['name']) ) { // was the form submitted?
$data['name']= 'welcome '.$name;
$data ['age']= 'you are '.$age;
print_r(json_encode($data));exit;
}
?>
现在在您的成功功能
var message = data.name + ' ' + data.age;
$('#result').html(message );
您正在发送myname
并在 php 中检查name
(isset($_POST['name']
)。不要使用 .value()
.html() 进行数据渲染。控制台记录数据,并使用Firebug查看请求和响应。 你能试试这个吗?
待更改
var yourData ='name='+myname+'&age='+myage; // php is expecting name and age
和
$('#result').html(data); // here html()
代码变为
$(document).ready(function() {
$("#btn").click(function(event){
event.preventDefault();
var myname = $("#name").val();
var myage = $("#age").val();
var yourData ='name='+myname+'&age='+myage; // php is expecting name and age
$.ajax({
type:'POST',
data:yourData,//Without serialized
url: '23.php',
success:function(data) {
if(data){
$('#testform')[0].reset();//reset the form
$('#result').html(data); // here html()
alert('Submitted');
}else{
return false;
}
}
});
});
});
尝试在 ajax 函数中像这样格式化帖子数据。
$.ajax({
type:'POST',
data : {
myname: myname
myage: myage
}
...
}
编辑
尝试删除 中的;
return false;
}
};
自
return false;
}
}
你可以在 ajax 和 php 两端进行更改:
@PHP:
您可以检查正确的发布数据,这些数据myname
,myage
不是name
和age
。
<?php
if ( isset($_POST['myname'])) { // was the form submitted?
echo "Welcome ". $_POST["myname"] . "<br>";
echo "You are ". $_POST["myage"] . "years old<br>";
}
?>
或@Ajax:
yourData ='name='+myname+'&age='+myage;
//--------^^^^^^----------^^^^----change these to work without changing php
刚刚注意到#result
是一个div 元素。因此,您不能使用.val()
,而是使用.html(), .append()
等:
$('#result').html(data);