我有这样的形式。
<form action="Barang.php" method="POST" class="form-horizontal" role="form">
<div class="form-group">
<label class="control-label col-md-3"
for="id_suplier">ID suplier :</label>
<div class="col-md-5">
<select class="selectpicker" title="Ketikkan ID suplier" data-width="100%" data-live-search ="true" id="id_suplier" autocomplete="off" onchange="" required>
<?php
$query = $db->query('SELECT * FROM tb_suplier');
?>
<?php
while($row = $query->fetch(PDO::FETCH_ASSOC)){ ?>
<option value="<?php echo $row['id_suplier']; ?>"><?php echo $row['id_suplier']; ?></option>
<?php
}
?>
</select>
</div>
<span class="badge badge-info" style="margin-top:10px;" id="namasup">nama suplier</span>
</div>
</form>
<script type="text/javascript">
$('#id_suplier').on('change', function() {
var id_suplier=$("#id_suplier").val();
$.ajax({
type:"POST",
url:"Barang.php",
dataType:'json',
success:function(data) {
$("#namasup").html(data.namasup);
}
});
})
</script>
我想将请求发送到Barang.php,我想在getSuplier()中处理,并获得数据库的名称,并将值放在id = namasup上。我该如何处理它?</ p>
这里代码为Barang.php
<?php
class Barang
{
function getSuplier($id){
$query = $this->db->query("SELECT nama from tb_suplier where id='$id' ");
$result=$query->fetch(PDO::FETCH_ASSOC);
return $result;
}
}
答案 0 :(得分:0)
也许你可以这样做
class Barang
{
function getSuplier($id){
// your code here ....
}
}
$barang = new Barang;
$barang->getSupplier($_GET['id']);
除此之外,Jeff是对的。您没有将id_suplier
发送到服务器。请发送。
答案 1 :(得分:0)
我认为每次更改选择中的数据时都不需要从数据库中请求名称
在我看来,您可以使用此代码
in html
<html>
<body>
<form action="Barang.php" method="POST" class="form-horizontal" role="form">
<div class="form-group">
<label class="control-label col-md-3"
for="id_suplier">ID suplier :</label>
<div class="col-md-5">
<select class="selectpicker" title="Ketikkan ID suplier" data-width="100%" data-live-search ="true" id="id_suplier" autocomplete="off" onchange="" required>
</select>
</div>
<span class="badge badge-info" style="margin-top:10px;" id="namasup">nama suplier</span>
</div>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function createOption(datas)
{
var html = "";
for (var i in datas){
var data = datas[i];
html = html + '<option value="'+data['id']+'">'+ data['name'] +'</option>';
}
return html;
}
$(document).ready(function() {
//get all data
$.ajax({
type:"POST",
url:"Barang.php",
type: "json",
//dataType:'json',
success:function(res) {
var datas = JSON.parse(res);
$("#id_suplier").html(createOption(datas));
//tigger change event
$('#id_suplier').change();
}
});
$('#id_suplier').on('change', function(){
//change name in span
var name = $('#id_suplier').find(":selected").text();
$("#namasup").html(name);
});
});
</script>
</body>
在php中
class Barang
{
//Method for get all datas
public function getSupliers(){
//I don't have you database so I skip this part
// $query = $this->db->query("SELECT nama from tb_suplier");
// $result=$query->fetch(PDO::FETCH_ASSOC);
// return $result;
//mock data
$datas = [[
'id' => 1,
'name' => 'Test 1',
],[
'id' => 2,
'name' => 'Test 2',
],[
'id' => 3,
'name' => 'Test 3',
]];
return $datas;
}
}
$class = new Barang();
$datas = $class->getSupliers();
echo json_encode($datas);
希望这个帮助