Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Jquery AJAX对所选值返回空响应_Php_Jquery_Mysql_Ajax_Pdo - Fatal编程技术网

Php Jquery AJAX对所选值返回空响应

Php Jquery AJAX对所选值返回空响应,php,jquery,mysql,ajax,pdo,Php,Jquery,Mysql,Ajax,Pdo,我正在尝试使用jqueryajax级联更新SELECT标记。 该标准作为POST/JSON传递给PHP脚本,该脚本反过来使用PDO从MySql数据库中提取数据。然后使用JSON显示响应。 我的问题是,有两个特定记录时,响应将为空 表单selectBB.php: <?php include_once '../core/classes/bbClasses.php'; $db=new workingDB(); ?> <!DOCTYPE html> <head&g

我正在尝试使用jqueryajax级联更新SELECT标记。 该标准作为POST/JSON传递给PHP脚本,该脚本反过来使用PDO从MySql数据库中提取数据。然后使用JSON显示响应。 我的问题是,有两个特定记录时,响应将为空

表单selectBB.php:

<?php
include_once  '../core/classes/bbClasses.php';
$db=new workingDB();
?>
<!DOCTYPE html>
    <head>
    <meta charset="utf-8">
    <link href="../Core/css/css.css" rel="stylesheet" type="text/css"/>
    <script src="../Core/jquery/jquery-1.11.1.js" type="text/javascript"></script>
     <!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>-->
<title>Liste des départements</title>
</head>
<body>
    <div id="wrapper">
        <header>
            <div id="logoZone"></div>
            <nav>
                <li><a href="#">Clients</a></li>
                <li><a href="#">Positions</a></li>
                <li><a href="#">Clients</a></li>
                <li><a href="#">Maintenance</a></li>
                <li><a href="#">Rapports</a></li>
            </nav>
        </header>
        <aside>
            <ul>
                <li>Reservation</li>
                <li>Location</li>
                <li>Renouvellement</li>
            </ul>
        </aside>
        <div id="content">
    <form method="$POST" name="frmSlctBB">

        <label for="slctDPT">Departement</label>
        <select id= "Dpt" name="slctDPT">
            <?php
            $listDPT=$db->loadDPT();
            if(count($listDPT)){
                foreach ($listDPT as $DPT) {
                    echo ("<option value=".$DPT['IDDepartment'].">".$DPT['DepartmentName']."</option>");
                }
            }
            ?>
        </select>
        <label for ="slctVille">Ville</label>
        <select id="slctVille" name="slctVille">


        </select>
        <label for ="slctFormat">Format</label>
        <select id="slctFormat" name="slctFormat"></select>
        <label for ="slctStatut">Statut</label>
        <select id="slctStatut" name="Statut"></select>
</form>
            <!--Error log-->
            <div class="errorlog"></div>
            <!-- End of error log-->

</div> <!-- end of content--> 
<footer>
    <ul>
        <li> <address><strong>Dauphin s.a.</strong>bldg #8, complexe Acra <br>route de Delmas,<br>Delmas, HT6120<br>Haiti</address></li>
    </ul>
</footer>
</div> <!-- end of wrapper-->

    <script src="../Core/js/searchCritFunctions.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function(){
            $("#Dpt").change(function(){
                fetchCities();
            });
        });
    </script>
相反,如果Ajax数据为1或9,则响应将为空

提前感谢你的帮助

注意:我已经验证了数据库,这些特定的行不是空的

另外:@Sean,谢谢你提醒我忘记添加listcity.php

<?php
//Output list of cities based on departments selected
include_once  '../core/classes/bbClasses.php';
$d=$_POST['d'];  //array of departments selected
$base= new workingDB();
$villes=$base ->loadCities($d);
echo json_encode($villes);
$base="";
?>

listCities.php是什么样子的?为了清楚起见,我添加了这个问题。谢谢。有点不对劲,正如您所说,通过AJAX发送的数据是2,您会得到[{IDCity:22,0:22,IDDepartment:5,1:5,…,但由于您的查询是从IDDepartment=.dpt的tblCities中选择IDCity,IDDepartment,CityName;您应该得到的是IDDepartment:2而不是IDDepartment:5。因此,在数据中的某处:{d:selDpt},$d=$\u POST['d'];,$villes=$base->loadCities$d;,公共函数loadCities$dpt,其中iddepartment=.$dpt您的值从2->5更改了。@Sean,我想这是我的错别字,我在原始帖子中进行了更正。但是在您的评论之后,我注意到,当我将标准设置为3时,Firefox控制台将输出[Object{0=16,1=3,2=Jacmel,more…],Object{0=17,1=3,2=Marigot,more…}]但当我将其设置为9时,我将根据9时得到的控制台输出得到Object{url=listCities.php,type=POST,isLocal=false,more…},如果看到控制台时ajax失败,则返回$document.ajaxrofunctionjqxhr,textStatus,throwner{.我假设1是select中的第一个值,9是最后一个值?它可能不会更改任何内容,但请尝试在select值周围加引号。$DPT['DepartmentName']。;
<?php

require_once '../core/config/config.php';

class workingDB extends db {

public function loadDPT(){
    $sql="SELECT * FROM tblDepartments ORDER BY DepartmentName";
    $q =  $this->conn->prepare($sql);
    $q->execute();
    return $row=$q -> fetchAll();
}
public function loadCities($dpt){
    $sql="SELECT IDCity, IDDepartement, CityName FROM tblCities WHERE IDDepartement=".$dpt;
    $q = $this->conn->prepare($sql);
    $q->execute();
    $row=$q -> fetchAll();
    return $row;
    }
}
    [{"IDCity":"22","0":"22","IDDepartement":"5","1":"5","CityName":"Hinche","2":"Hinche"},{"IDCity":"23","0":"23","IDDepartement":"5","1":"5","CityName":"Mirebalais","2":"Mirebalais"}]
<?php
//Output list of cities based on departments selected
include_once  '../core/classes/bbClasses.php';
$d=$_POST['d'];  //array of departments selected
$base= new workingDB();
$villes=$base ->loadCities($d);
echo json_encode($villes);
$base="";
?>