AJAX没有按预期工作

时间:2017-09-05 23:20:39

标签: php mysql ajax

我花了一天时间检查这段代码,但仍无法找到错误的位置。

<div class="col-md-6">
  <br/>
  <label for="name">Class ID</label>
  <select class="form-control" id="csid" name="csid">
    <option>----------Please select a Class Code---------</option>
    <?php
      $query = $con->query("SELECT * FROM class WHERE class_status='Active' ");
      $rowCount = $query->num_rows;
      if($rowCount > 0) {
        while($row = $query->fetch_assoc()) { 
          echo '<option value="'.$row['class_id'].'">'.$row['class_code'].'</option>';
        }
      }
      else {
        echo '<option value="">Class ID not available</option>';
      }
    ?>
  </select>
</div>
<div class="col-md-6">
  <br/>
  <label for="name">Subject Name</label>
  <input type="text" class="form-control" name="subid" id="subid" disabled/>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script>
     $(document).ready(function(){
       $('#csid').change(function(){
         var classid = $(this).val();
         $.ajax({
           type:'POST',
           url:'ajax.php',
           data:{classid:classid},
           success:function(data){
             $('#subid').val(data);
           }
         });
       });
    });
</script>

这是我的ajax.php文件:

<?php

include('dataconnect.php');

if (isset($_POST['classid'])) 
{
    $qry = "select * from class where class_id=". $_POST['classid'];
    $rec = mysql_query($qry);
    if (mysql_num_rows($rec) > 0) {
        while ($res = mysql_fetch_array($rec)) {
            echo $res['class_status'];
        }
    }
}

?>

任何人都可以让我知道错误的位置,因为我真的找不到它。谢谢。

1 个答案:

答案 0 :(得分:1)

如果您使用的是PHP 7,则由于mysql_构造函数为removed in PHP 7(和deprecated as of PHP 5.5),您的代码将不会有任何输出。

切换为MySQLiPDO可解决此问题。

除此之外,请确保您还使用prepared statements来阻止SQL injection。 :)