데이터베이스에서 데이터를 가져 오려고하는데 다음 코드는 올바르게 작동하고 배치 번호에 데이터베이스의 레코드가 하나만있는 경우 드롭 다운을 표시하지만 추가 할 때 같은 배치 번호에 대해 더 많은 재고가 배치 번호에서 드롭 다운을 보여주는 것을 멈추는 반면에 json없이 동일한 코드를 수행하면 모든 배치 번호가 표시되지만 다른 데이터를 가져와야하므로 json으로 처리하려고합니다. 또한 다른 divs에 표시됩니다 db에서, 친절하게 내가 뭘 잘못하고 도움이됩니다.ajax를 사용하는 드롭 다운에서 여러 데이터가 json이 작동하지 않습니다.
JQuery와/아약스
<script>
function getBatch(id) {
var product_id = jQuery('#product'+id).val();
jQuery.ajax({
type: 'POST',
url: 'get_Batch.php',
data: { product_id: product_id },
dataType : 'JSON',
success: function(data) {
jQuery('#batch'+id).html(data.batch_option);
jQuery('#available_qty'+id).val(data.avaliable_quantity);
}
});
}
</script>
내가 이렇게 할 경우 드롭 한 배치 번호에 대해
모든 기록을 보여줍니다<?php
include('includes/config.php');
if(isset($_POST['product_id'])) :
$product_id = $_POST['product_id'];
$get_batch = mysqli_query($conn, "Select * from products JOIN products_stock ON products.p_id='$product_id' AND products.p_id=products_stock.p_id");
if(mysqli_num_rows($get_batch) > 0) :
header('Content-Type: application/json');
while($batch = mysqli_fetch_object($get_batch)) :
$data = [
'batch_option' => "<option value=".$batch -> batch_no.">
".$batch -> batch_no."
</option>",
'avaliable_quantity' => $batch -> p_available
];
echo json_encode($data);
endwhile;
else :
header('Content-Type: application/json');
$data = [
'batch_option' => "<option value='No batch found'> No batch found </option>",
'avaliable_quantity' => 'Not avaliable'
];
echo json_encode($data);
endif;
endif;
?>
PHP
<?php
include('includes/config.php');
if(isset($_POST['product_id'])) :
$product_id = $_POST['product_id'];
$get_batch = mysqli_query($conn, "Select * from products JOIN products_stock ON products.p_id='$product_id' AND products.p_id=products_stock.p_id");
if(mysqli_num_rows($get_batch) > 0) :
while($batch = mysqli_fetch_object($get_batch)) :
?> <option value="<?php echo $batch -> id; ?>"><?php echo $batch -> id; ?></option> <?php
endwhile;
endif;
endif;
?>
while 루프 후에 'echo json_encode ($ data);'를 이동해야합니다. 루프에서이 코드는 유효하지 않은 여러 json 인코딩 데이터를 반향 출력합니다. '$ data = ...'를'$ data [] = ... '로 변경해야합니다. – Sean
자바 스크립트에서 json 객체를 반복하여 반환 된 모든 HTML 데이터를 가져와야합니다. – Sean