使用ajax从数据库获取数据

时间:2017-09-26 12:03:18

标签: php jquery ajax

嘿伙计们,我知道这次被问了很多次,这是我第一次遇到问题,我需要从数据库中获取数据,但它不起作用,并且控制台没有错误。我出于某种原因无法让它工作,我的设置正确,我的ajax很好吗?

这是我的HTML:

<div class="form-group">
    <label> Event</label>
    <?php
    $event = $con->prepare('SELECT * FROM event');
    $event->execute();
    $eventrows = $event->fetchAll();
    ?>
    <select class="form-control" id="event" name="event_id">
        <?php
        foreach ($eventrows AS $eventrow) {
        ?>
        <option
        value="<?php echo $eventrow['EventID']; ?>"><?php echo $eventrow['EventName']; ?></option>
        <?php } ?>
    </select>
</div>
<div class="form-group">
    <label> Level</label>
    <select class="form-control" id="level" name="level_id">
    </select>
</div>

我的Ajax

<script>
$(document).ready(function() {
  $('#event').change(function() {
    var event_id = $(this).children(":selected").val();
    $.post("get_level.php", {
      event_id: event_id
    }, function(data, status) {
      console.log(status);
      if (status == 'success') {

        var loopdata = JSON.parse(data);
        $('#level').html('')
        $.each(loopdata, function(i, item) {
          $('#level').append("<option value='" + loopdata[i].LevelID + "'>" + loopdata[i].LevelName + "</option>");
        });
        console.log(data);
      }
    });
  });
});
</script>

get_level.php

<?php
session_start();
include 'connect.php';

$reg = $con->prepare("SELECT * FROM Level WHERE EventID = '".$_POST['event_id']."'");
$reg->execute(array());
$allreg=$reg->fetchAll();
echo json_encode($allreg);  // pass array in json_encode
?>

2 个答案:

答案 0 :(得分:0)

代码中没有问题,但是代码的位置,ajax没有工作的原因,它应该是页脚包含页脚后的最后一个内容因为页脚包含jQuery包含

答案 1 :(得分:-2)

$(document).ready(function() {
  $('#event').change(function() {
    var event_id = $(this).val();
    $.post("get_level.php", {
        event_id: event_id
      }, 'json')
      .done(function(loopdata) {
        $('#level').html('')
        $.each(loopdata, function(i, item) {
          $('#level').append("<option value='" + item.LevelID + "'>" + item.LevelName + "</option>");
        });
      });
  });
});