动态填充文本文件中的选择列表

时间:2018-11-21 08:34:49

标签: php file web dynamic dropdown

我有一个网站,允许用户通过在三个下拉列表中选择值来查询数据库。

当前,我使用单个文本文件填充选择列表。但是,有一个设计更改,现在我们要使用第一个下拉列表中选择的条目填充第二个下拉列表。我知道这样做并不是很常见,但是我对网站设计非常陌生,需要一些指导。我没有遇到任何仅使用一个简单文本文件并以我目前的方式读取它的示例。

因此,当用户从第一个选择列表中选择一个应用程序时,相应的配置应加载到第二个选择框中。对于每个应用程序,我都有一个与之关联的配置文件e.g app1_config.txt, app2_config.txt,依此类推。我知道,我必须使用一些事件侦听器,然后可以使用开关盒来映射应用程序名称以更正配置文件,然后以与我现在相同的方式读取文件。有人可以在这方面指导我吗。我在网上看到的大多数示例都使用ajax/json/database等。我可以在不对当前方法进行最小改动的情况下,真正实现所需的动态加载吗?我真的需要使用所有文本文件来填充选择列表。

例如 App1_config.txt将具有以下条目:

config1
config2
config3
config4 

这是我的php代码的样子:

<body>
<div id = header>
<div class = container> Database Query </div>
</div>
<div class = container>
<form action="""" method = "post">
//populating first dropdown using text file
<?php
 $filename='/path/to/the/text/file.txt';
 $eachlines =  file($filename, FILE_IGNORE_NEW_LINES);
?>
 <div id = param1>
 <p align="top"><b> Application: </b></p>

<select size=15 name = "App" required>
  <?php foreach($eachlines as $lines){ //add php code here
            echo "<option value='".$lines."'>$lines</option>";
        }?>
</select>
</p>
</div>
<?php
 $filename='db_report_cfg_string.txt';
 $eachlines =  file($filename, FILE_IGNORE_NEW_LINES);
?>
<div id = param2>
<p align="top"><b> Configuration: </b></p>

<select size=15 name = "Config" required>
  <?php foreach($eachlines as $lines){ //add php code here
            echo "<option value='".$lines."'>$lines</option>";
        }?>
</select>
</p>
</div>
//some code to populate another select list and provide email address (not shown here)


<?php
if(isset($_POST['submit'])){
  $varApp= $_POST['App'];
  $varConfig = $_POST['Config'];
  $varCtrType = $_POST['CtrType'];
  $varEmail = $_POST['mailid'];
//some processing based on values provided by user. 
exec("/py $varApp $varConfig $varCtrType 2>&1",$output );
if ($output[8] == "Empty"){
echo "<div style ='font:22px Arial,tahoma,sans-serif;color:#ff0000'><br>No Data Available! <br></div>";
}
else {
     exec(' printf "Please find attached the query result for following selection:\n\nApp: '.$varApp.'  \nConfig: '.$varConfig.' \nCounter Type: '.$varCtrType.' \n\n Thanks! "  | /bin/mail -s "Database Query Result" -a '.$output[8].' '.$varEmail.'  2>&1', $output2 ); 
echo "<div style ='font: 18px Arial,tahoma,sans-serif;color:#10ac84'><br><b> Please check your email for result !<b> <br>";
echo '<script language="javascript">';
echo 'alert("Please check your email for result! Submitted Query details: Selected App: '.$varAPP.' Configuration:")';
echo '</script>';
}
$_POST=array();

}
?>


</body>

非常感谢您在这里的指导。

0 个答案:

没有答案