从PHP div页面的Dropdown List中发布值

时间:2013-08-13 16:05:12

标签: php jquery html

我在从下拉列表传递值时出现问题,该列表位于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标签的方式有关。再说一次,我对所有这些都很陌生,所以我应该做的任何想法或改变都会非常感激。

2 个答案:

答案 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倍;)