这是我第一次访问此网站,所以我会努力追求。
我一直在使用PHP,AJAX,jquery和MySQL作为数据库的固定资产控制Web系统(该项目的结构是通过遵循本网站https://www.itechempires.com/2016/07/pdo-crud-operations-using-php-bootstrap/的教程进行的,而构成),其中这些项目是注册以及每种资产所属的类别,公司内用户进行的交易以及每次交易生成的报告。
由于我尝试了所有可以使它们起作用的下拉列表,但目前我一直受困于这些下拉列表,但是没有我一直在寻找的结果,这是: 在模式中,有一种形式是要添加资产及其相关信息的信息,其中两个详细信息是类别和子类别,这些类别和子类别由从属下拉列表处理,选择子类别后,将显示与子类别有关的下拉列表。>
这些代码段将进行审核,重点将放在与下拉列表相关的代码段上。
表格
组(组或类别)
subgeupo(子组或子类别)
libAF.php:包含所有针对Crud操作的查询
/*
* Get group's id and name
*
* @return $id_grp, $nombre_grp
* */
public function populateSelGrp()
{
$query = $this->db->prepare("SELECT id_grp, nombre_grp FROM grupo");
$query->execute();
$data = array();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
return $data;
}
/*
* Get sub-group's id and name
*
* @return $id_grp, $nombre_grp
* */
public function populateSelSgrp($id_grp)
{
$query = $this->db->prepare("SELECT * FROM subgrupo WHERE id_grp = :id_grp");
$query->bindParam("id_grp", $id_grp, PDO::PARAM_STR);
$query->execute();
$data = array();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
return $data;
}
populateSelGrp.php:将类别加载到父级下拉列表上
<?php
require 'libAF.php';
$data = "";
$object = new CRUD();
$grupos = $object->populateSelGrp();
$data .= '<select id="select_grp" class="form-control" onchange="populateSelSgrp()">';
$data .= '<option value="0" disabled selected>Escoja grupo</option>';
if (count($grupos) > 0) {
foreach ($grupos as $grupo) {
$data .= '<option id="selected_grp" value="' . $grupo['id_grp'] . '"> ' . $grupo['nombre_grp'] . '</option>';
}
}
else
{
$data .= '<option>No hay opciones disponibles</option>';
}
$data .= '</select>';
echo $data;
?>
populateSelSgrp.php:将子类别加载到子下拉列表
<?php
require 'libAF.php';
if (isset($_POST['id_grp']) && isset($_POST['id_grp']) != "") {
$id_grp = $_POST['id_grp'];
$data = "";
$object = new CRUD();
$subgrupos = $object->populateSelSgrp($id_grp);
$data .= '<label for="select_sgrp">Sub-grupo</label>';
$data .= '<select id="select_sgrp" class="form-control">';
$data .= '<option value="0" disabled selected>Escoja sub-grupo</option>';
if (count($subgrupos) > 0) {
foreach ($subgrupos as $subgrupo) {
$data .= '<option value="' . $subgrupo['id_sgrp'] . '"> ' . $subgrupo['nombre_sgrp'] . '</option>';
}
}
else
{
$data .= '<option>No hay opciones disponibles</option>';
}
$data .= '</select>';
echo $data;
}
?>
scptAF.js:包含使输入正常工作所需的脚本
function populateSelGrp(){
$.get("ajax/activoFijo/populateSelGrp.php", {
},
function (data, status) {
//load options to dropdown list
$(".option_grp").html(data);
}
);
}
function populateSelSgrp(id_grp){
$.ajax({
url: "ajax/activoFijo/populateSelSgrp.php",
method: "POST",
data:{id_grp: id_grp},
success:function(data){
$(".option_sgrp").html(data);
}
})
}
activos.php(资产):用户在其中添加,删除或更新资产的可见页面。
<div class="form-group">
<label for="select_grp">Grupo</label>
<div class="option_grp"></div>
</div>
<div class="form-group">
<div class="option_sgrp"></div>
</div>
答案 0 :(得分:0)
我终于找到了解决此问题的方法,这是我必须添加到javaScript文件中的一些代码才能将ID发送到第二个下拉列表。尽管我终于解决了我的问题,但我希望看到有关如何解决该问题的其他建议。
这是我的摘录
scptAF.js
print()