【发布时间】:2019-05-07 07:49:46
【问题描述】:
第二个下拉列表应根据第一个下拉列表中的选择填充,但我在第二个下拉列表中得到值“未定义”。从 SQL Server 获取数据。查看 Google 开发工具,我可以看到,当我单击第一个下拉列表中的某个项目时,ajaxfile.php 会正确执行查询。
索引.PHP
<!doctype html>
<?PHP
$server = "server";
$options = array( "UID" => "user", "PWD" => "pass", "Database" =>
"database");
$conn2 = sqlsrv_connect($server, $options);
if ($conn2 === false) die("<pre>".print_r(sqlsrv_errors(), true));
echo " ";
?>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<section id="formaT2" class="formaT2 formContent">
<div class="row">
<div class="col-md-2 col-3 row-color remove-mob"></div>
<div class="col-md-5 col-9 bg-img" style="padding-left: 0;
padding-right: 0;">
<h1>Form</h1>
<div class="rest-text">
<div class="contactFrm">
<p class="statusMsg <?php echo
!empty($msgClass)?$msgClass:''; ?>"><?php echo $statusMsg; ?></p>
<form action="connection.php" method="post">
<div>machinery</div>
<select id="machinery">
<option value="0">--Please Select Machinery--</option>
<?php
// Fetch Department
$sql = "SELECT Machinery FROM T013";
$machanery_data = sqlsrv_query($conn2,$sql);
while($row = sqlsrv_fetch_array($machanery_data) ){
$machinery = $row['Machinery'];
// Option
echo "<option value='".$machinery."' >".$machinery."</option>";
}
?>
</div>
</select>
<div class="clear"></div>
<div>Sub Machinery</div>
<select id="sub_machinery">
<option value="0">- Select -</option>
</select>
<input type="submit" name="submit"
id="submit" class="strelka-send" value="Insert">
<div class="clear"> </div>
</form>
</div>
</div>
</div>
</div>
</section>
</script>
<script type="text/javascript">
$(document).ready(function(){
$("#machinery").change(function(){
var machinery_id = $(this).val();
$.ajax({
url:'ajaxfile.php',
type: 'post',
data: {machinery:machinery_id},
dataType: 'json',
success:function(response){
var len = response.length;
$("#sub_machinery").empty();
for( var i = 0; i<len; i++){
var machinery_id = response[i]['machinery_id'];
var machinery = response[i]['machinery'];
$("#sub_machinery").append("<option
value='"+machinery_id+"'>"+machinery+"</option>");
}
}
});
});
});
</script>
</body>
</html>
AJAXFILE.PHP
<?php
$server = "server";
$options = array( "UID" => "user", "PWD" => "pass",
"Database" => "database");
$conn2 = sqlsrv_connect($server, $options);
if ($conn2 === false) die("<pre>".print_r(sqlsrv_errors(), true));
echo " ";
$machineryID = $_POST['machinery']; // department id
$sql = "SELECT MachineID FROM T013 WHERE Machinery='$machineryID'";
$result = sqlsrv_query($conn2,$sql);
$machinery_arr = array();
while( $row = sqlsrv_fetch_array($result) ){
$machinery = $row['MachineID'];
$machinery_arr[] = array("MachineID" => $machinery);
}
// encoding array to json format
echo json_encode($machinery_arr);
?>
【问题讨论】:
标签: php sql-server ajax