我在从下拉列表传递值时出现问题,该列表位于jquery正在使用的单独PHP文件中。
我最终根据第一个下拉列表中选择的值,使用jquery从下拉列表中获取未正确发布的值。有问题的下拉列表正确填充,但是按照我设置的方式,我无法将值发布到提交PHP页面。
我很确定它与我设置它的方式有关;但是,我对jquery很新,并且正在寻找一些指导。
主要的PHP页面(有问题的小区域)
<select name="department_list" id="department_list" onchange="$('#singleUser').load('get_users.php?nid='+this.value);">
...
<div id="singleUser" class="singleUser">
</div>
PHP页面(get_users)用于填充值(仅限于相关区域)
echo '<p style="text-align:center">';
echo "
<br />
Select a person to receive the form
<br />";
echo "<select id='userSelect' class='userSelect'>";
if ($id == '50') {
echo "<option value='Done'>Done</option>";
echo "</select>";
}else {
echo "<option value='none'>Select user</option>";
try {
$db = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
$stmt = $db->prepare("SELECT dm.empid AS empid, u.name AS name FROM mytable dm
JOIN mytable2 u ON dm.empid = u.id
WHERE dm.deptid = :id
ORDER BY u.name");
$stmt->bindParam(':id', $id);
$stmt->execute();
while ($r = $stmt->fetch()) {
$empid = $r['empid'];
$userName = $r['name'];
echo "<option value='".$empid."'>".$userName."</option>";
}
echo "</select>";
echo "</p>";
$db = null;
}
catch (PDOException $ex) {
echo "An Error occurred!";
}
}//end else
在提交页面中:
if(isset($_POST['userSelect'])){
$givenID = $_POST['userSelect'];
//the rest of my code
我在表单标签中有上面的div代码,并且有method =“post”。所有其他输入都正确发布,所以我认为它与我在主页面中只有div标签的方式有关。再说一次,我对所有这些都很陌生,所以我应该做的任何想法或改变都会非常感激。
答案 0 :(得分:1)
当您使用php编写时,您忘记了选择的名称:
改变这个:
echo "<select id='userSelect' class='userSelect'>";
到
echo "<select id='userSelect' name='userSelect' class='userSelect'>";
答案 1 :(得分:1)
我认为错误是在PHP文件中生成用户选择它缺少名称属性 name =“userSelect”
echo "<select id='userSelect' class='userSelect'>";
应该是
echo '<select id="userSelect" name="userSelect" class="userSelect">';
每个带有name属性的表单元素都会以其值发布。如果未输入name属性,则无法从$ _POST数组中检索该值。另请注意,禁用表单输入也不会发布。
编辑 PHP引号。每当您不需要将PHP变量插入字符串时,请使用Single qutes。它比双引号快〜9倍;)