我正在使用脚本使用MySQL数据库生成级联下拉列表。
选择一个课程,然后选择一个位置并从该开始日期开始。
它有三列:课程,位置和开始日期。
如何重命名这些,以便它们是Course2,Location2和Start Date2?
我试过寻找解决方案,但别名似乎不起作用。
这是SELECT语句:
$sql = "SELECT DISTINCT `$col` FROM `$table`".$where."ORDER BY `$col` ASC";
这是我正在使用的完整脚本:
http://coursesweb.net/ajax/multiple-select-dropdown-list-ajax_t
$table = 'options';
$ar_cols = array('Course', 'Location', 'Start Date', null);
$preid = 'slo_'; // a prefix used for element's ID, in which Ajax will add <select>
$col = $ar_cols[0]; // the variable used for the column that wil be selected
$re2_html = ''; // will store the returned html code
// if there is data sent via POST, with index 'col' and 'wval'
if (isset($_POST['col']) && isset($_POST['wval'])) {
// set the $col that will be selected and the value for WHERE (delete tags and external spaces in $_POST)
$col = trim(strip_tags($_POST['col']));
$wval = "'".trim(strip_tags($_POST['wval'])).
"'";
}
$key = array_search($col, $ar_cols); // get the key associated with the value of $col in $ar_cols
$wcol = $key === 0 ? $col : $ar_cols[$key - 1]; // gets the column for the WHERE clause
$_SESSION['ar_cols'][$wcol] = isset($wval) ? $wval : $wcol; // store in SESSION the column and its value for WHERE
// gets the next element in $ar_cols (needed in the onchange() function in <select> tag)
$last_key = count($ar_cols) - 1;
$next_col = $key < $last_key ? $ar_cols[$key + 1] : '';
$conn = new mysqli($server, $user, $pass, $dbase); // connect to the MySQL database
if (mysqli_connect_errno()) {
exit('Connect failed: '.mysqli_connect_error());
} // check connection
// sets an array with data of the WHERE condition (column=value) for SELECT query
for ($i = 1; $i <= $key; $i++) {
$ar_where[] = '`'.$ar_cols[$i - 1].
'`='.$_SESSION['ar_cols'][$ar_cols[$i - 1]];
}
// define a string with the WHERE condition, and then the SELECT query
$where = isset($ar_where) ? ' WHERE '.implode($ar_where, ' AND ') : '';
$sql = "SELECT DISTINCT `$col` FROM `$table`".$where.
"ORDER BY `$col` ASC";
$result = $conn - > query($sql); // perform the query and store the result
// if the $result contains at least one row
if ($result - > num_rows > 0) {
// sets the "onchange" event, which is added in <select> tag
$onchg = $next_col !== null ? " onchange=\"ajaxReq('$next_col', this.value);\"" : '';
// sets the select tag list (and the first <option>), if it's not the last column
if ($col != $ar_cols[$last_key]) $re2_html = '<label>'.$col.
':</label> <select name="'.$col.
'"'.$onchg.
' id="'.$col2.
'"><option>Select a '.$col.
'</option>';
while ($row = $result - > fetch_assoc()) {
// if its the last column, reurns its data, else, adds data in OPTION tags
if ($col == $ar_cols[$last_key]) $re2_html. = '<br/>'.$row[$col];
else $re2_html. = '<option value="'.$row[$col].
'">'.$row[$col].
'</option>';
}
if ($col != $ar_cols[$last_key]) $re2_html. = '</select> '; // ends the Select list
} else {
$re2_html = '0 results';
}
$conn - > close();
// if the selected column, $col, is the first column in $ar_cols
if ($col == $ar_cols[0]) {
// adds html code with SPAN (or DIV for last item) where Ajax will add the select dropdown lists
// with ID in each SPAN, according to the columns added in $ar_cols
for ($i = 1; $i < count($ar_cols); $i++) {
if ($ar_cols[$i] === null) continue;
if ($i == $last_key) $re2_html. = '<p id="'.$preid.$ar_cols[$i].
'"> </p>';
else $re2_html. = '<p id="'.$preid.$ar_cols[$i].
'"> </p>';
}
// adds the columns in JS (used in removeLists() to remove the next displayed lists when makes other selects)
$re2_html. = '<script type="text/javascript">var ar_cols = '.json_encode($ar_cols).
'; var preid = "'.$preid.
'";</script>';
} else echo $re2_html;
任何帮助将不胜感激。此时我正在拔头发!如果您需要更多信息,请与我们联系。