我尝试填充 下拉列表框,从 MySQL 中检索数据库。以下是我的表单和 php 文件。它对我来说没什么问题,但是当我点击 提交按钮 时,我不知道为什么它没有显示出来。我有什么办法可以解决这个错误吗?任何更正和建议将不胜感激。
CS_JOBS
表包含:job_title
,category_code
(17,27,37 ....),等等。
connect.php 可以正常工作。
我的表格
<!DOCTYPE html>
<html>
<head></head>
<body>
<form action = "csjob.php" method = "POST" name = "jobsearch">
<select name = "category_code[]">
<option value = "17">Architecture and Engineering</option>
<option value = "27">Arts, Design, Entertainment, Sports, and Media</option>
<option value = "37">Building and Grounds Cleaning and Maintenance</option>
<option value = "13">Business and Financial Operations</option>
<option value = "21">Community and Social Services</option>
<option value = "15">Computer and Mathematical</option>
<option value = "47">Construction and Extraction</option>
<option value = "25">Education, Training, and Library</option>
<option value = "45">Farming, Fishing, and Forestry</option>
<option value = "35">Food Preparation and Serving Related</option>
<option value = "29">Healthcare Practitioner and Technical</option>
<option value = "31">Healthcare support</option>
<option value = "49">Installation, Maintenance, and Repair</option>
<option value = "23">Legal</option>
<option value = "19">Life, Physical, and Social Science</option>
<option value = "11">Management</option>
<option value = "43">Office and Administrative Support</option>
<option value = "39">Personal Care and Service</option>
<option value = "51">Production</option>
<option value = "33">Protective Service</option>
<option value = "41">Sales and Related</option>
<option value = "53">Transportation and Material Moving</option>
</select>
<input type="submit" value="Submit">
</form>
</body>
</html>
的 csjob.php 的
<?php
require("connect.php");
if(isset($_POST['submit'])){
$sql = "SELECT * FROM CS_JOBS WHERE category_code=".$_POST['category_code'];
$result = mysql_query($sql);
echo "<select name='category_code'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row['job_title']"'>".$row['job_title']"</option>";
}
echo "</select>";
}
?>
这个问题有很多错别字,这是我上传的实际代码:a link!
答案 0 :(得分:2)
你有3个小问题。第一个是,格式为:
<select name = "category_code[]">
应该是
<select name="category_code">
因此,名称中没有括号[]
,也不需要额外的空格...
只有当您有一个具有多个select的选项时才需要括号,并且将返回一个数组(因此括号)。在你的情况下不会发生这种情况。
第二个问题就是之前所说的:PHP中的 :
$row['job_title'}
应该是
$row['job_title']
因此请使用}
]
您的第三个问题与检查提交有关:
if(isset($_POST['submit'])){
应该是
if(isset($_POST['category_code'])){
因为您没有名称'提交'的字段。您有一个 id 提交和值提交的字段。但没有名称提交。您可以将name='submit'
添加到提交按钮。或者只是按照我上面提出的改变......
答案 1 :(得分:1)
<?php
require("connect.php");
if(isset($_POST['submit']))
{
$sql = "SELECT * FROM CS_JOBS WHERE category_code=".$_POST['category_code'];
$result = mysql_query($sql);
if( mysql_num_rows( $result ) > 0 ){
echo "<select name='category_code'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row['job_title']"'>".$row['job_title']"</option>";
}
echo "</select>";
}
}
?>
答案 2 :(得分:0)
你的代码毫无意义。如果存在特定的表单字段,则运行查询,但仅当相同的表单字段 NOT 时才运行“显示结果”代码。
最简单的修复:删除 } else {
...