опция выбора связанных данных с помощью ajax и php

#php #mysql #ajax

#php #mysql #ajax

Вопрос:

Я пытаюсь заполнить описание материала из номера материала. Значения Bot hte хранятся в том же SQL tasble. Итак, что я хочу, когда я выбираю Material Maiterial Description shpul, автоматически заполняется.

Файлы в таблице — это Material amp; materialdescription

Ниже приведен код в основном файле, в котором извлекаются данные

 <?php
include_once "dbConnect.php";

$sql = "SELECT * FROM DRLINK";

$result2 = mysqli_query($conn, $sql);
if (!$result2) {
    printf("Error: %sn", mysqli_error($conn));
    exit();
}
$options = "";
while($row2 = mysqli_fetch_array($result2))
{
$options = $options."<option>$row2[1]</option>";

}


?>
<html>
<!DOCTYPE html>

<head>
<title>Dropdown Ajax</title>
</head>
<body>

<form action ="DSSTRsubmit.php" method="POST">
<table border="1">
<tr>
<td>Select Retailer</td>
</tr>
<tr>
<td>
<?php
echo "<select>";
 echo $options;
   echo "</select>";
 ?>

</td> 
</tr>
</table>

<br/>
<br/>
<br/>




<table border="1">

<tr>
<td>Material</td>
<td>Material Description</td>
<td>Quantity</td>
<td>Unit of Measure</td>
</tr>
<tr>

<td>
<div class="Material">

<select name="Material" onchange="getId(this.value);">
<option value="">Select Country</option>
<?php
$query ="SELECT * FROM MATERIALLIST";
$results = mysqli_query($conn, $query);
foreach($results as $MATERIALLIST) {
    ?>


<option value="<?php echo $MATERIALLIST["Material"];?>"><?php echo $MATERIALLIST["Material"];?></option>
<?php
}
?>
</select>

</div>

</td>
<td>
<div class="MaterialDescription">
<select name="MaterialDescription" id="DesList">
<option value=""></option>
</select>
</div>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
function getId(val){
    $.ajax({
        type:"POST",
        url:"getdata1.php",
        data:"Material=" val,
        success: function(data){
            $("#DesList").html(data);
            }
    });

}
</script>


 </td>
<td><input type="text" name="dquantity_name" /> </td>
<td><input type="text" name="duom_name" /> </td>
</tr>

</table>


<legend> </legend>
<p> <button type="submit" class="pure-button pure-button-primary">Send Stock</button>

<br>
<br>
<?php
  echo "Distributor Page";
?>

</body>
</html>
 

ниже приведен getdata1.php

 <?php
include_once "dbConnect.php";

if(!empty($_POST["Material"])){
$Material= $_POST["Material"];
$query = "SELECT * FROM MATERIALLIST WHERE Material = $Material";
$results = mysqli_query($conn,$query);

foreach($results as $MaterialDescription){
?>
<option value="<?php echo $Des["Material"];?>"><?php echo $materialDescription ["MaterialDescription"];?></option>
<?php
}
}
?>
 

Я могу выбрать материал, но при выборе материала описание материала не заполняется автоматически.

Спасибо за помощь

Ответ №1:

PHP чувствителен к регистру. Будьте осторожны при присвоении имен переменным. foreach содержит переменную в верхнем регистре, в то время как echo — в нижнем регистре. Также в echo у вас есть пробел после переменной и перед открывающей скобкой.

 $MaterialDescription
$materialDescription_["MaterialDescription"]
 

Комментарии:

1. измененные данные по-прежнему не получают

2. пожалуйста, дайте мне знать, чего мне не хватает, где я могу проверить, чего мне не хватает