Javascript JSON、jquery和ajax解析问题

Javascript JSON、jquery和ajax解析问题,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,以下是我的java脚本文件: $('#addSchoolForm').trigger("reset"); //$(document).ready(function() { $(function() { $("#dialog").dialog({ autoOpen: false, maxWidth:600, maxHeight: 350, width: 500, height: 300, });

以下是我的java脚本文件:

$('#addSchoolForm').trigger("reset");

//$(document).ready(function()  {
$(function() {
    $("#dialog").dialog({
        autoOpen: false,
        maxWidth:600,
        maxHeight: 350,
        width: 500,
        height: 300,
    });

    $("#addSchool").on("click", function() {
        $("#dialog").dialog("open");
    });

    $("#addSchoolForm").submit(function(e) { 
        e.preventDefault();
        $("#dialog").dialog("close")
        var postData = jQuery(this).serialize();
        $.ajax({
            type: "POST",
            url: "AddSchools.php",
            data: postData,
            success: function(data){
                alert(data); }
        });   
    });

    $("#editSchool").submit(function(e) { 
        e.preventDefault();
        var editData = jQuery(this).serialize();
        $.ajax({
            type: "POST",
            url: "GetSchoolID.php",
            data: editData,
            dataType: 'json',
            success: function(data){


                var schoolID = $.parseJSON(data);
                alert("success");
                alert(schoolID.name);

                //alert(data["json"]);
                //alert(data); 

                //document.addSchoolForm[sname].value = data[0].name;
                //document.addSchoolForm[abbrev].value = data[abbrev];
                //document.addSchoolForm[abbrev].value = data[0].abbrev;
            }

            alert(schoolID.name); 
        });
        //$("#dialog").dialog("open");
    });
}) 
这是我的get schoolID php文件

<?php
$school_id = $_POST['school_id'];


$db = mysqli_connect("localhost", "root", "imagroup123","mytrack");

if(!$db){
    exit("Error in database connection");
    echo("couldn't connect to database");
}
else{
    $q = "SELECT * FROM `School` WHERE `SchoolID`='$school_id'";
    $schoolresults = mysqli_query($db,$q);

    $row = mysqli_fetch_assoc($schoolresults);
    $school["name"] = $row['SchoolLong'];
    $school["abbrev"] = $row['SchoolShort'];

    echo json_encode($school);

    }


?>
更改:

        success: function(data){
            var schoolID = $.parseJSON(data);
致:


因为当您指定
数据类型时,
$.ajax
会自动调用
$.parseJSON()
,“json”

以下是我一直使用的php后端结构:

$query = " SELECT * 
           FROM school 
           WHERE SchoolID = $school_id;
$result = mysqli_query($cxn, $query) or die ("could not query database 1");

if (mysqli_num_rows($result) > 0)
{
    $row = mysqli_fetch_array($result);
    $variablestopass = array
    (
           'schoolname' => $row['SchoolLong'],
         'schoolabbrev' => $row['SchoolShort'],
     );
  echo json_encode($variablestopass);}
else
  { echo "Error selection id"; } 
下面是一些js来调用和阅读它:

$.ajax({
        type: 'POST',
         url: 'thenameofyourfile.php';
        data: {schoolid: schoolid},
        dataType: 'json'
        })
         .done( function() { alert( "Got it!"" );
                             Do other stuff here
                            })
         .fail(function(jqXHR, textStatus, errorThrown){
          console.log(jqXHR.responseText, textStatus, errorThrown);
    });

您询问的是这两个Ajax请求中的哪一个?Ajax成功处理程序中的
alert()?浏览器控制台中是否出现任何错误?由于您指定了
数据类型:“json”
,因此不应调用
$。parseJSON()
--jQuery会自动为您执行此操作。我已取消了parse json调用,但当我尝试输出学校名称时,警报框为空。我是通过:alert(data.schoolname)来实现的。这是错误的吗?我将上面的“.done”回调作为一个示例(只是一个警报)非常简单。要实际回调“数据”,需要将数据的名称放入函数()。完成(函数(数据){alert(data.varname);…其他命令…});。我会做一个完整的,几分钟后给你一个链接。这是我刚刚用我的一个项目中的一段代码制作的页面。它解释了每一行。
$.ajax({
        type: 'POST',
         url: 'thenameofyourfile.php';
        data: {schoolid: schoolid},
        dataType: 'json'
        })
         .done( function() { alert( "Got it!"" );
                             Do other stuff here
                            })
         .fail(function(jqXHR, textStatus, errorThrown){
          console.log(jqXHR.responseText, textStatus, errorThrown);
    });