Php onClick Ajax数据不工作

Php onClick Ajax数据不工作,php,jquery,ajax,post,isset,Php,Jquery,Ajax,Post,Isset,我正在构建一个需要Ajax的网站,以便在不刷新整个页面的情况下发送POST方法 我尝试使用ajax从链接标记上的onclick事件发送数据,但ajax代码似乎发送了一篇空文章 这是php/jquery/ajax代码: <p id="school_content"> </p> <script src="js/jquery.js"></script>

我正在构建一个需要Ajax的网站,以便在不刷新整个页面的情况下发送POST方法

我尝试使用ajax从链接标记上的onclick事件发送数据,但ajax代码似乎发送了一篇空文章

这是php/jquery/ajax代码:

                <p id="school_content"> 
                </p>
                <script src="js/jquery.js"></script>
                    <script type="text/javascript">
                        $(document).ready(function() {
                            $(".toggleThis").click(function(){
                                var Id = $(this).attr('id');

                                $.ajax({
                                     contentType: "application/json; charset=utf-8",
                                     url: "id_script.php",
                                     type: "POST",
                                     data: {
                                            'school_name': Id,
                                         },
                                        success: function(data){
                                            alert(Id);
                                        },
                                    });

                                $("#school_content").load("id_script.php");
                            });
                        });
                    </script>

$(文档).ready(函数(){ $(“.toggleThis”)。单击(函数(){ var Id=$(this.attr('Id'); $.ajax({ contentType:“应用程序/json;字符集=utf-8”, url:“id_script.php”, 类型:“POST”, 数据:{ “学校名称”:Id, }, 成功:功能(数据){ 警报(Id); }, }); $(“#学校内容”).load(“id#u script.php”); }); });
链接标记具有学校的“id”,该jquery部分需要在带有“id”的“school_content”的段落中显示信息:$(“#school_content”).load(“id_script.php”)

var Id=$(this.attr('Id');部分有效,因为他在警报中给了我正确的学校名称();如果我要求的话

id_script.php需要以通常的方式获得这篇文章,但不是

id_script.php代码:

<?php 
include('connect.php');
header('Content-Type: application/json');
if(isset($_POST['school_name'])){
        $Id = $_POST['school_name'];
        $extract = mysqli_query($con, "SELECT * FROM school_kaart WHERE school_name='$Id'");
        $numro=mysqli_num_rows($extract);
            if(mysqli_num_rows($extract) == '1'){   
                $row = mysqli_fetch_assoc($extract);
                echo 'Yes it works!';
            }
            else{
                echo 'Nope, didnt work!';
            }
}
else{
        echo 'Not posted!';
}

?>


在我前面提到的段落中,我仍然得到“未发布”。问题似乎出在哪里?

.load
是ajax请求的简写,因此您实际上是在执行2个请求。 后者不发送任何数据,因此返回“未发布!”

试一试


$(文档).ready(函数(){
$(“.toggleThis”)。单击(函数(){
var Id=$(this.attr('Id');
$.ajax({
url:“id_script.php”,
类型:“POST”,
数据:{
“学校名称”:Id,
},
成功:功能(数据){
警报(Id);
$(“#学校内容”).html(数据);
},
});
//去掉这个
//$(“#学校内容”).load(“id#u script.php”);
});
});

检查标题<代码>内容类型是您可能缺少的类型。您的PHP可能不需要JSON数据。@RikEckhardt remove
header('Content-Type:application/JSON')因为您实际上并没有发送json数据。
            <script src="js/jquery.js"></script>
                <script type="text/javascript">
                    $(document).ready(function() {
                        $(".toggleThis").click(function(){
                            var Id = $(this).attr('id');

                            $.ajax({
                                 url: "id_script.php",
                                 type: "POST",
                                 data: {
                                        'school_name': Id,
                                     },
                                    success: function(data){
                                        alert(Id);
                                       $("#school_content").html(data);
                                    },
                                });


                              //remove this
                            //$("#school_content").load("id_script.php");
                        });
                    });
                </script>