根据使用相同SQL表的下拉列表自动填充文本字段

时间:2016-10-08 19:52:01

标签: php jquery html mysql ajax

我正在尝试使用SQL表填充文本字段和文本区域,具体取决于第二个下拉列表的选择。不知怎的,我弄错了。这是我现在的代码:

AJAX / HTML

<script>
  function getPackage(val) {
   $.ajax({
   type: "POST",
   url: "get_package.php",
   data:'serviceid='+val,
   success: function(data){
      $("#package-list").html(data);
       }
    });
   }

   function getPackageDesc(val) {
   $.ajax({
   type: "POST",
   url: "get_packagedesc.php",
   data:'packageid='+val,
   success: function(data){
      $("#price").html(data);
      }
    });
   }

   function selectService(val) {
   $("#search-box").val(val);
   $("#suggesstion-box").hide();
     }
</script>

我觉得函数getPackageDesc已经出现了问题。我不知道它是在这个函数还是在php文件中。

主要HTML

<div class="frmDronpDown">
 <div class="row">
   <label>Service:</label>
   <br/>
   <select name="service" id="service-list" class="demoInputBox" onChange="getPackage(this.value);">
     <option value="">Select Service</option>
     <?php
      foreach($results as $service) {
     ?>
     <option value="<?php echo $service[" serviceid "]; ?>">
      <?php echo $service["servicename"]; ?>
     </option>
    <?php
      }
    ?>
    </select>
  </div>
  <div class="row">
    <label>Package:</label>
    <br/>
    <select name="package" id="package-list" class="demoInputBox" onChange="getPackageDesc(this.value);">
      <option value="">Select Package</option>
    </select>
  </div>
  <div class="row">
    <label>Package Information:</label>
    <br/>
    <br/> Price:
    <br>
    <input type="text" name="price" id="price">
    <br>
    <br> Package Description:
    <br>
    <textarea name="packagedesc" form="usrform" id="packagedesc"></textarea>
  </div>
</div>

get_package.php

<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["serviceid"])) {
    $query ="SELECT * FROM tbl_packages WHERE serviceid = '".$_POST["serviceid"]."'";
    $results = $db_handle->runQuery($query);
?> < option value = "" > Select Package < /option>
<?php
    foreach($results as $package) {
?> < option value = "<?php echo $package["
packageid "]; ?>" > <?php echo $package["packagename"]; ?> < /option>
<?php
    }
}
?>

这部分代码有效。我使用两个SQL表填充了下拉列表, tbl_services tbl_packages 。下一个php文件是我遇到麻烦的地方。

get_packagedesc.php

<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["packageid"])) {
    $query ="SELECT * FROM tbl_packages WHERE packageid = '".$_POST["packageid"]."'";
    $result = mysqli_query($conn, $query);
?>
<?php
    while($row = mysqli_fetch_array($result)){
    ?>
    <?php echo $price['price'] ; ?></br>    
    <?php echo $packagedesc['packagedesc']; ?>  </br>
<?php
    }
}
?>

这段代码是我遇到麻烦的地方。我不知道从同一个SQL表(tbl_packages)获取数据是否可以。或者也许我搞砸了$ result。

我的代码有什么问题,可能是什么解决方案?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

看起来你并没有从行本身获取信息,而是从未声明的变量中获取信息。试试这个:

<?php echo $row['price'] ; ?></br>    
<?php echo $row['packagedesc']; ?>  </br>