Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中过滤下拉框_Php - Fatal编程技术网

在PHP中过滤下拉框

在PHP中过滤下拉框,php,Php,我正试着过滤掉第一个投递箱的第二个投递箱。第一个$box1可以正常工作。但是,我无法获得$box2来构建第一个。如果我改变 SELECT Site FROM companiesandsitessql WHERE Company ='$box1'"); 到 然后,它在第二个框中为CompanyA提取所有站点。我尝试了许多$box1的变体,但我肯定错过了什么。任何想法都值得赞赏 <?php $dbhost = 'localhost'; $dbname = 'escalations';

我正试着过滤掉第一个投递箱的第二个投递箱。第一个$box1可以正常工作。但是,我无法获得$box2来构建第一个。如果我改变

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>&nbsp;</p>
<p><a href="new.php">Return to the 
  escalation request form</a>.</p>

  </html>