Php ajax调用后不会返回任何内容

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="

下面是我的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="">
            <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