Php 阿贾克斯给了我一个空白的回复,有人能告诉我哪里出了错吗

Php 阿贾克斯给了我一个空白的回复,有人能告诉我哪里出了错吗,php,jquery,ajax,Php,Jquery,Ajax,这是我的代码,我希望我的第二个选项列表在选择第一个列表时从数据库中提取数据 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script> $(document).ready(function () { $('#category').change(function(){ var i

这是我的代码,我希望我的第二个选项列表在选择第一个列表时从数据库中提取数据

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('#category').change(function(){
   var id=$(this).val();


   $.ajax({
       type:'post',
       url:'get_select.php',
       data:{'id':id},
       cache:false,
       success:function (html) {
           $("#type").html(html);
       }
   });
});
});
</script>

<form method="post" action="">
<label>Category :</label><br>
<select id="category" name="category" class="form-control">
    <?php
    $host = "localhost";
    $username = "root";
    $password = "mysql";
    $database = "crm";
    $conn = new PDO("mysql:host=$host;dbname=$database", $username, $password);


    $sql1 = $conn->prepare("SELECT list_name from links_list ");
    $sql1->execute();

    while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) {
        ?>
        <option value="<?php echo $data1['list_name']; ?>"><?php echo $data1['list_name']; ?></option>
        <?php
    }

    ?>
</select><br><br>
<label>Types :</label><br>
<select id="type" name="type" class="form-control">
    <option value="0">-select-</option>
</select><br><br>
</form>
get_select.php

    $host = "localhost";
    $username = "root";
    $password = "mysql";
    $database = "crm";
    $conn = new PDO("mysql:host=$host;dbname=$database", $username, $password);

    $cn = $_POST['id'];
    $sql1 = $conn->prepare("SELECT id from links_list where 
    list_name='$cn'");
    $sql1->execute();

    while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) {
        $link = $data1['id'];
        echo'<option value="'.$link.'">'.$link.'</option>';
       }

我想在选择第一个列表项时获取第二个列表项,这取决于第一个列表,在我的代码ajax响应中,第二个列表应该来自更新的代码blanlk

,我认为您在get_select.php中遇到了问题。在查询中选择链接,在while循环中使用id,因此需要在此处进行更改:

$host = "localhost";
    $username = "root";
    $password = "mysql";
    $database = "crm";
    $conn = new PDO("mysql:host=$host;dbname=$database", $username, $password);

    $cn = $_POST['id'];
    $sql1 = $conn->prepare("SELECT id from links_list where 
    list_name='$cn'"); //<-----------select id or you can change field name
    $sql1->execute();

    while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) {
        $link = $data1['id']; //<-----------use id or use whatever you are selecting
        echo'<option value="'.$link.'">'.$link.'</option>';
       }

从您更新的代码中,我认为您在get_select.php中存在问题。在查询中选择链接,在while循环中使用id,因此需要在此处进行更改:

$host = "localhost";
    $username = "root";
    $password = "mysql";
    $database = "crm";
    $conn = new PDO("mysql:host=$host;dbname=$database", $username, $password);

    $cn = $_POST['id'];
    $sql1 = $conn->prepare("SELECT id from links_list where 
    list_name='$cn'"); //<-----------select id or you can change field name
    $sql1->execute();

    while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) {
        $link = $data1['id']; //<-----------use id or use whatever you are selecting
        echo'<option value="'.$link.'">'.$link.'</option>';
       }
在javascript中

data:dataString, 

在php中

 $link = $data1['id'];

在javascript中

data:dataString, 

在php中

 $link = $data1['id'];


你有三个阶段的诊断

验证第一组选项中是否正确填充了数据

接下来,验证onchange方法是否被调用

然后检查get_select.php是否显示正确的结果

验证每个阶段并检查结果是否有效。我们很难验证这一点,因为我们不知道第一组PHP调用的结果。此外,如果您在get_select.php中的db调用与您发送的不匹配,您仍然会得到空数据

检查每个阶段,看看结果是否如预期的那样


这个答案将帮助您诊断类似这样的未来问题

您的诊断分为三个阶段

验证第一组选项中是否正确填充了数据

接下来,验证onchange方法是否被调用

然后检查get_select.php是否显示正确的结果

验证每个阶段并检查结果是否有效。我们很难验证这一点,因为我们不知道第一组PHP调用的结果。此外,如果您在get_select.php中的db调用与您发送的不匹配,您仍然会得到空数据

检查每个阶段,看看结果是否如预期的那样


这个答案将帮助您诊断类似这样的未来问题

这可能不是一个解决方案,但它会纠正你的一些错误

1:选项应该像$type.appendhtml一样追加

2:还添加了ajax错误处理程序

$.ajax({
       type:'post',
       url:'get_select.php',
       data:{id:id},
       cache:false,
       success:function (html) {
           $("#type").empty();
           $("#type").append(html);
       },
       error:function(request,string_error,error){
           alert(string_error);
       }

   });
3:而不是在while循环中回响。像这样在while循环之后连接和回显

  $concat ="";
  while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) {
      $link = $data1['id'];
      $concat.= '<option value="'.$link.'">'.$link.'</option>';
  }
   echo $concat;

这可能不是一个解决办法,但它会纠正你的一些错误

1:选项应该像$type.appendhtml一样追加

2:还添加了ajax错误处理程序

$.ajax({
       type:'post',
       url:'get_select.php',
       data:{id:id},
       cache:false,
       success:function (html) {
           $("#type").empty();
           $("#type").append(html);
       },
       error:function(request,string_error,error){
           alert(string_error);
       }

   });
3:而不是在while循环中回响。像这样在while循环之后连接和回显

  $concat ="";
  while ($data1 = $sql1->fetch(PDO::FETCH_ASSOC)) {
      $link = $data1['id'];
      $concat.= '<option value="'.$link.'">'.$link.'</option>';
  }
   echo $concat;


这看起来不对,是吗var dataString='id'+id;data:dataString,to data:{'id':id},是的,我做了,但没有用,结果相同,在dataString上放置一个console.log并打印结果。然后,您可以看到问题出在哪里。@DeekshithShetty用您对数据所做的更新来回答您的问题:这看起来不对,是吗?:var dataString='id'+id;data:dataString,to data:{'id':id},是的,我做了,但没有用,结果相同,在dataString上放置一个console.log并打印结果。然后,您可以看到问题出在哪里。@DeekshithShetty用您对数据所做的更新来回答您的问题:您检查控制台了吗?您得到了什么?更改功能正在工作,它将返回空白数据检查此查询:从链接列表中选择id,其中列表名称=“$cn”回显此查询,并直接在phpmyadmin或mysql中复制粘贴,然后在我的数据库中查看它是否返回结果,一个列表名是“manu”,如果我写的是该名称而不是$cn,它显示的是结果,但从post Method收到时不在其中,我必须回显$cn,如果我在get_select.php中做了这件事,它是不是来了它选项列表?我这样做了,但它显示了空白。你们检查控制台了吗?您得到了什么?更改功能正在工作,它将返回空白数据检查此查询:从链接列表中选择id,其中列表名称=“$cn”回显此查询,并直接在phpmyadmin或mysql中复制粘贴,然后在我的数据库中查看它是否返回结果,一个列表名是“manu”,如果我写的是该名称而不是$cn,它显示的是结果,但从post Method收到时不在其中,我必须回显$cn,如果我在get_select.php中做了这件事,它是不是来了它选项列表?我这样做了,但它显示了如何检查数据是否正确填充。是否可以检查is my file sending data to get_select.php。是否?如果您的代码正常工作,您将在网页上看到第一组数据库调用的选项。你能看到吗?检查选项1。第二次检查,在类别内添加警报。更改。如果警报发生变化,您可以看到呼叫。第三张支票。如果上述方法有效,请验证数据字符串。如果该值为空,则ajax调用将失败。或者,简单地说,在调试器上运行该命令。
并查看发生了什么。如果你在某处有一个公共链接,共享,它,我们可以看到,发生了什么事情如何检查数据是否正确填充?是否可以检查“是我的文件发送数据到get_select.php”。是否?如果您的代码正常工作,您将在网页上看到第一组数据库调用的选项。你能看到吗?检查选项1。第二次检查,在类别内添加警报。更改。如果警报发生变化,您可以看到呼叫。第三张支票。如果上述方法有效,请验证数据字符串。如果该值为空,则ajax调用将失败。或者,简单地说,在调试器上运行该命令。并查看发生了什么。如果你在某个地方有一个公共链接,分享,它,我们可以看到,发生了什么事a我没有用如果我的答案有用,用绿色勾号标记它对将来的用户参考有用@DeekshithShettyya,只有当我在get_select.php中输入了核心字段名,它才会起作用,它会从那里收到,但id是空白的,现在,你也可以帮助我使用itget\u select.php echo文件\u get\u contents'php://input'; ajax中的警报成功警报HTML;是否知道价值发布@DeekshithshettyA抱歉,我没有得到你,我应该在哪里回音,什么?我没有用如果我的答案有用,用绿色勾号标记它对未来用户参考有用@DeekshithshettyA,只有当我在get_select.php中输入核心字段名时,它才有效,它会从那里收到,但id是空白的,现在,你也可以帮助我使用itget\u select.php echo文件\u get\u contents'php://input'; ajax中的警报成功警报HTML;是否知道价值发布@deekshithshetty对不起,我没有得到你,我应该在哪里回音,什么?