Javascript 列表框中的许多元素相互关联
这是我第一次使用这种媒介寻求帮助。我想知道在我的代码中如何包含两个列表框。一个用于查询数据库,并通过一个按钮将其发送给另一个,并使用多个选项执行此操作,然后,如php代码所示,将第二个列表框中的数据放在表数据库中。多谢各位Javascript 列表框中的许多元素相互关联,javascript,php,jquery,listbox,Javascript,Php,Jquery,Listbox,这是我第一次使用这种媒介寻求帮助。我想知道在我的代码中如何包含两个列表框。一个用于查询数据库,并通过一个按钮将其发送给另一个,并使用多个选项执行此操作,然后,如php代码所示,将第二个列表框中的数据放在表数据库中。多谢各位 导师ÍA 新校友登记处 您的表单需要提交一个操作: <form name="form" id="form" action="<?php echo echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>
导师ÍA
新校友登记处
您的表单需要提交一个操作:
<form name="form" id="form" action="<?php echo echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" method="post">
并在
然后你可以返回带有第二个下拉列表的页面,它的构造方式与你创建第一个下拉列表的方式大致相同,使用你从第一个下拉列表返回的数据来创建第二个下拉列表。您可以将第一个下拉列表包装到isset()
:
第二个在
if( isset( $combo1 ) ){
// make your second select boxes if combo1 returned a value
}
这样它们只会在需要时出现
正如@NanaPartykar所说,mysqli是唯一的出路
它将依赖于JavaScript,因此,如果您愿意,可以使用submit按钮代替JavaScript函数:
<input type="submit" name="submit" value="Pick Sizes" />
如果愿意,您可以删除
onChange=“submit();”
并用表单上的正常提交按钮替换它。停止使用mysql*函数。他们被弃用了。下一件事,你到底想要什么。我想你需要使用会话将第二个组合框的值构建到一个数组中,同时组装主组合框-我会看看我是否能为你构建一个框架。第二级的值在哪里-$fila[2]]
etc?@ShakaDiocares尝试将新的代码块放在php页面上,看看它能做什么——我希望您能够将您的数据库值放入其中。如果这是你想要的,请告诉我。非常感谢你的回答,但我不能完全理解。我不会说英语,翻译破坏了他们告诉我的一切,如果你能很好地纠正我的代码,我会更好地理解,但非常感谢你。
$combo1 = mysqli_real_escape_string( $_POST['combo1'] );
if( !isset( $combo1 ) ){
// make your first select boxes
}
if( isset( $combo1 ) ){
// make your second select boxes if combo1 returned a value
}
<input type="submit" name="submit" value="Pick Sizes" />
<?php session_start(); ?>
<!DOCTYPE html>
<html lang = "es">
<head>
<title>PRECEPTORÍA</title>
</head>
<body>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
<?php
$main_opt = array();
$_SESSION['opt_vals'] = array();
$main_opt[0] = "Select Item";
$main_opt[1] = "Ice Cream";
$main_opt[2] = "Trousers";
$main_opt[3] = "Tee Shirts";
$_SESSION['opt_vals'][1][0] = "Select Flavour";
$_SESSION['opt_vals'][1][1] = "Vanilla";
$_SESSION['opt_vals'][1][2] = "Chocolate";
$_SESSION['opt_vals'][1][3] = "Strawberry";
$_SESSION['opt_vals'][1][4] = "Tuttifrutti";
$_SESSION['opt_vals'][2][0] = "Select Colour";
$_SESSION['opt_vals'][2][1] = "Black";
$_SESSION['opt_vals'][2][2] = "Red";
$_SESSION['opt_vals'][2][3] = "Green";
$_SESSION['opt_vals'][2][4] = "Blue";
$_SESSION['opt_vals'][3][0] = "Select Size";
$_SESSION['opt_vals'][3][1] = "Small";
$_SESSION['opt_vals'][3][2] = "Medium";
$_SESSION['opt_vals'][3][3] = "Large";
$_SESSION['opt_vals'][3][4] = "X Large";
$i = 0;
if(!isset($_POST['combo1']) && !isset($_POST['combo2'])){
echo '<select name="combo1" onChange="submit();">' . "\n";
//while ($fila = mysqli_fetch_row($consulta)){
while($i < count($main_opt)){
echo "<option value='".$i."'>".$main_opt[$i]."</option>\n";
$o = 0;
// load your sub options array here
if(!$_SESSION['opt_vals'][$i]) $_SESSION['opt_vals'][$i] = array();
while($i < count($_SESSION['opt_vals'][$i])){
$_SESSION['opt_vals'][$i] = $o;
if(!$_SESSION['opt_vals'][$i]) $_SESSION['opt_vals'][$i] = array();
$_SESSION['opt_vals'][$i][$o] = $_SESSION['opt_vals'][$i][$o];
$o++;
}
$i++;
}
echo '</select>' . "\n";
}else{
if(intval($_POST['combo1']) >= 1) $_SESSION['combo1_val'] = $combo1_val =intval($_POST['combo1']);
if(intval($_POST['combo1']) >=1){
$i = 0;
echo '<select name="combo2" onChange="submit();">' . "\n";
while($i < count($_SESSION['opt_vals'][$combo1_val])){
echo "<option value='".$i."'>".$_SESSION['opt_vals'][$combo1_val][$i]."</option>\n";
$i++;
}
}
echo '</select>' . "\n";
}
if(intval($_POST['combo2']) >= 1) $_SESSION['combo2_val'] = $combo2_val =intval($_POST['combo2']);
if($_SESSION['combo1_val'] >=1 && $_SESSION['combo2_val'] >=1){
// use the result to do whatever you want
echo 'Thank you! You have selected ' . $_SESSION['opt_vals'][$_SESSION['combo1_val']][$_SESSION['combo2_val']] . " " . $main_opt[$_SESSION['combo1_val']] . '.';
}
// Do any mysqli adjustments to your database here
// reset to go again
if($_SESSION['combo2_val'] >= 1){
$_SESSION['combo1_val'] = 0;
$_SESSION['combo2_val'] = 0;
}
?>
</form>
<a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>">Click to start a new selection</a>
</body>
</html>