Php ajax调用后不会返回任何内容
下面是我的Php文件,在这里我使用Php ajax调用后不会返回任何内容,php,jquery,ajax,Php,Jquery,Ajax,下面是我的Php文件,在这里我使用ajax调用另一个Php文件,以在提交按钮后获取一些数据: <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> </head> <body> <form enctype="
ajax
调用另一个Php文件,以在提交按钮后获取一些数据:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
<form enctype="">
<button class="refresh"> submit </button>
<input placeholder="text here" name="roll" >
</form>
<script>
$(document).ready(function(){
$('.refresh').click(function(){
// var formData = new FormData($(this)[0]);
//event.preventDefault();
$.ajax({
url:'ajax.php',
type:'POST',
data:{roll:'rana'},
//async:false,
success:function(response){
alert(response);
//document.write(response);
},
cache:false,
contentType:false,
processData:false
});return fasle;
});
});
</script>
</body>
</html>
提交
$(文档).ready(函数(){
$('.refresh')。单击(函数(){
//var formData=新formData($(此)[0]);
//event.preventDefault();
$.ajax({
url:'ajax.php',
类型:'POST',
数据:{roll:'rana'},
//async:false,
成功:功能(响应){
警报(响应);
//文件。书写(回复);
},
cache:false,
contentType:false,
processData:false
})返回方式;
});
});
另一个php文件是:
<?php
echo 'rana';
echo $_POST["roll"];
?>
当我写一些文本并点击提交按钮时,输入字段的文本就会显示在url中,并且不会从另一个php文件中获取任何数据。为什么?有人能给我一些线索或帮助吗?谢谢。单击按钮后,表单已提交,您需要使用
preventDefault()
方法停止该行为。将脚本替换为以下内容:
<script>
$(document).ready(function(){
$('.refresh').click(function(e){
e.preventDefault(); // this line will prevent submission of form
// var formData = new FormData($(this)[0]);
//event.preventDefault();
$.ajax({
url:'ajax.php',
type:'POST',
// data:{roll:'rana'},
//async:false,
success:function(response){
alert(response);
//document.write(response);
},
cache:false,
contentType:false,
processData:false
});return fasle;
});
});
</script>
$(文档).ready(函数(){
$('.refresh')。单击(函数(e){
e、 preventDefault();//此行将阻止表单提交
//var formData=新formData($(此)[0]);
//event.preventDefault();
$.ajax({
url:'ajax.php',
类型:'POST',
//数据:{roll:'rana'},
//async:false,
成功:功能(响应){
警报(响应);
//文件。书写(回复);
},
cache:false,
contentType:false,
processData:false
})返回方式;
});
});
您在ajax.php
文件中没有收到任何POST数据,因为没有任何POST数据,所以ajax请求中的数据
对象为空并已注释掉
与预期相反,表单值不能通过POST发送到PHP文件,这与使用action=“file.PHP method=“POST”
类似,因为在AJAX中,必须手动“构建”要作为POST请求发送的数据对象
下面是它的工作原理:
表单文件:
<form>
<input placeholder="text here" id="string">
<input type="submit" class="refresh" value="submit">
</form>
<script>
$(document).ready(function() {
$('.refresh').click(function(e) {
e.preventDefault();
$.ajax(
{
url:'ajax.php',
type:'POST',
data:{
string: $('#string').val()
},
success:function(response) {
alert(response);
}
}
);
});
});
</script>
<?php
echo $_POST['string'];
?>
因为原因。谢谢,它现在只能在成功响应中工作,但我无法在php文件中处理后发送数据并将其取回取消注释这行://数据:{roll:'rana'},
并将其更改为数据:{roll:$('input[name=“roll”]').val();},
使用$('input[name=“roll”])。val();速度较慢,不建议使用$('#roll').val()在大多数情况下,将名称改为id会更好。请查看下面我的答案,它解释了代码不起作用的原因以及您应该如何做。如果有帮助,请不要忘记将其标记为正确答案。请将我的答案标记为正确答案,并对其进行投票,以便其他人无法从帮助中获益,并且您还可以因该操作而获得声誉分数是的。
cache:false,
contentType:false,
processData:false