我在选择初始下拉列表后填写第二个下拉列表时遇到问题。使用静态变量时,当我选择左侧选项时,它会填充正常,但它没用,并且在右侧总是MBNA。
[7-Eleven v] [MBNA v]
如果我尝试使用基于第一个下拉列表的变量,则它是空白的。
[7-Eleven v] []
<?php
// config
include 'main.php';
?>
<select name="category" id="vend_info">
<?php
while ($myrow = $resVendor->fetch_assoc()) {
$GLOBALS['vendor'] = $myrow['name'];
?>
<option rel="accessories"><?php echo $GLOBALS['vendor'];?></option>
<?php
}
?>
</select>
<?php
$table = "VendorTable";
$sql = "SELECT defaultPayment FROM " . $table . " WHERE name=? ";
$stmt = $mysqli->prepare($sql);
if (!$stmt) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
exit();
}
// Bind parameters for markers, where (s = string, i = integer, d = double, b = blob)
$vendor = "3M"; //static
//$vendor = $GLOBALS['vendor']; //dynamic
$stmt->bind_param('s', $vendor);
// Execute the statement
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
exit();
}
// Get the results
if (!$resDefPay = $stmt->get_result()) {
echo "Getting result set failed: (" . $stmt->errno . ") " . $stmt->error;
exit();
}
// Close the statement
$stmt->close();
?>
<select name="items" class="cascade" >
<?php
while ($myrow = $resDefPay->fetch_assoc()) {
?>
<option class="accessories"><?php echo $myrow['defaultPayment'];?></option>
<?php
}
?>
</select>
我正在使用jquery来显示第二个选项。
$(document).ready(function(){
var $cat = $('select[name=category]'),
$items = $('select[name=items]');
$cat.change(function(){
var $this = $(this).find(':selected'),
rel = $this.attr('rel'),
$set = $items.find('option.' + rel);
if ($set.size() < 0) {
$items.hide();
return;
}
$items.show().find('option').hide();
$set.show().first().prop('selected', true);
});
});
我很感激有关如何使用sql select options的任何想法。