在PHP中过滤下拉框
我正试着过滤掉第一个投递箱的第二个投递箱。第一个$box1可以正常工作。但是,我无法获得$box2来构建第一个。如果我改变在PHP中过滤下拉框,php,Php,我正试着过滤掉第一个投递箱的第二个投递箱。第一个$box1可以正常工作。但是,我无法获得$box2来构建第一个。如果我改变 SELECT Site FROM companiesandsitessql WHERE Company ='$box1'"); 到 然后,它在第二个框中为CompanyA提取所有站点。我尝试了许多$box1的变体,但我肯定错过了什么。任何想法都值得赞赏 <?php $dbhost = 'localhost'; $dbname = 'escalations';
SELECT Site FROM companiesandsitessql WHERE Company ='$box1'");
到
然后,它在第二个框中为CompanyA提取所有站点。我尝试了许多$box1的变体,但我肯定错过了什么。任何想法都值得赞赏
<?php
$dbhost = 'localhost';
$dbname = 'escalations';
$dbuser = 'root';
$con = mysql_connect($dbhost, $dbuser);
{
$box1 = array();
mysql_select_db('escalations');
$result = mysql_query("SELECT distinct Company FROM companiesandsitessql");
while($row = mysql_fetch_array($result)) { $box1[] = $row; }
}
/* Generate select box contents */
$out1 = '<select name="box1">';
$out1 .= '<option>Select Company</option>';
if (!empty($box1)) {
foreach ($box1 as $k => $v) {
$out1 .= '<option value="'.$v['Company'].'">'.$v['Company'].'</option>';
}
}
$out1 .= '</select>';
/* Output */
echo $out1;
{
$box2 = array();
mysql_select_db('escalations');
$result2 = mysql_query("SELECT Site FROM companiesandsitessql WHERE Company ='$box1'");
while($row2 = mysql_fetch_assoc($result2)) { $box2[] = $row2; }
}
/* Generate select box contents */
$out2 = '<select name="box2">';
$out2 .= '<option>Site list</option>';
if (!empty($box2)) {
foreach ($box2 as $k1 => $v) {
$out2 .= '<option value="'.$v['Site'].'">'.$v['Site'].'</option>';
}
}
$out2 .= '</select>';
/* Output */
echo $out2;
?>
您需要使用一些javascript来捕获第一个select框上的onchange事件,当您使用var_dump$box1;?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定使用哪一种。您似乎在思考客户端代码和服务器端代码。在加载页面和表单之前,您无法从第一个下拉列表中获取所选公司submitted@njk编写糟糕的代码是一个主要问题。如果我复制你的评论并用它来警告人们这样做,你同意吗?如果是这样,你是否有你评论的.markdown版本?
<?php
$dbhost = 'localhost';
$dbname = 'escalations';
$dbuser = 'root';
$con = mysql_connect($dbhost, $dbuser);
{
$box1 = array();
mysql_select_db('escalations');
$result = mysql_query("SELECT distinct Company FROM companiesandsitessql");
while($row = mysql_fetch_array($result)) { $box1[] = $row; }
}
/* Generate select box contents */
$out1 = '<select name="box1">';
$out1 .= '<option>Select Company</option>';
if (!empty($box1)) {
foreach ($box1 as $k => $v) {
$out1 .= '<option value="'.$v['Company'].'">'.$v['Company'].'</option>';
}
}
$out1 .= '</select>';
/* Output */
echo $out1;
{
$box2 = array();
mysql_select_db('escalations');
$result2 = mysql_query("SELECT Site FROM companiesandsitessql WHERE Company ='$box1'");
while($row2 = mysql_fetch_assoc($result2)) { $box2[] = $row2; }
}
/* Generate select box contents */
$out2 = '<select name="box2">';
$out2 .= '<option>Site list</option>';
if (!empty($box2)) {
foreach ($box2 as $k1 => $v) {
$out2 .= '<option value="'.$v['Site'].'">'.$v['Site'].'</option>';
}
}
$out2 .= '</select>';
/* Output */
echo $out2;
?>
Figured it out, here’s the code.
***File new.php***
<?php
$dbhost = 'localhost';
$dbname = 'escalations';
$dbuser = 'root';
$con = mysql_connect($dbhost, $dbuser);
?>
<html>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function autoSubmit() {
$.post('dropoutput.php', { name: box1form.CompanyName.value},
function (output) {
$('#info').html(output).show();
});
}
</script>
<body>
<form name="box1form" action="insert.php" method="post">
<?php
{
$box1 = array();
mysql_select_db('escalations');
$result = mysql_query("SELECT distinct Company FROM companiesandsitessql ORDER BY Company ASC");
while($row = mysql_fetch_array($result)) { $box1[] = $row; }
}
/* Generate select box contents */
$CompanyName = '<select name="CompanyName" onchange="autoSubmit()">';
$CompanyName .= '<option selected="selected">Select Company</option>';
if (!empty($box1)) {
foreach ($box1 as $k => $v) {
$CompanyName .= '<option value="'.$v['Company'].'">'.$v['Company'].'</option>';
}
}
$CompanyName .= '</select>';
/* Output */
echo $CompanyName;
?>
<div id="info"></div><input name="send" type="submit" value="submit"><br>
</form>
</body>
</html>
***file dropoutput.php***
<?php
mysql_connect("localhost", "root", "") or die (mysql_error ());
$name = mysql_real_escape_string($_POST['name']);
{
$box2 = array();
mysql_select_db('escalations');
$result2 = mysql_query("SELECT Site FROM companiesandsitessql WHERE Company ='$name' ORDER BY Site ASC");
while($row2 = mysql_fetch_assoc($result2)) { $box2[] = $row2; }
}
/* Generate select box contents */
$S = '<select name="SiteOptions[]" multiple="multiple">';
$S .= '<option>Site list</option>';
if (!empty($box2)) {
foreach ($box2 as $k1 => $v) {
$S .= '<option value="'.$v['Site'].'">'.$v['Site'].'</option>';
}
}
$S .= '</select>';
/* Output */
echo $S;
?>
***file insert.php...
<?php
$dbhost = 'localhost';
$dbname = 'escalations';
$dbuser = 'root';
$dbpass = '';
$con = mysql_connect($dbhost, $dbuser);
if($con == FALSE)
{
echo 'Cannot connect to database' . mysql_error();
}
else
{
echo " Connected to database: ";
}
$Site = implode(', ', $_POST['SiteOptions']);
mysql_select_db("escalations", $con);
$sql="INSERT INTO escalationtrackersql (CompanyName, Site)
VALUES
('$_POST[CompanyName]', '$Site')";
echo "Added $_POST[CompanyName] ";
print $Site;
if (!mysql_query($sql, $con))
{
die('Error: ' . mysql_error());
}
echo " : Escalation request successfully entered.";
mysql_close($con)
?>
<html>
<head>
<meta content="en-us" http-equiv="Content-Language">
</head>
<body bgcolor="#C0C0C0">
<p> </p>
<p><a href="new.php">Return to the
escalation request form</a>.</p>
</html>