1

我在从 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 标签的方式有关。同样,我对所有这一切都很陌生,所以我应该做出的任何想法或更改以便正确发布将不胜感激。

4

2 回答 2

1

我认为错误在于生成用户选择的 PHP 文件中缺少名称属性name="userSelect"

echo "<select id='userSelect' class='userSelect'>";

它应该是

echo '<select id="userSelect" name="userSelect" class="userSelect">';

每个具有 name 属性的表单元素都会使用其值发布。如果不输入 name 属性,则无法从 $_POST 数组中检索该值。还要记住,禁用的表单输入也不会发布。

编辑了 PHP 引号。每次不需要将 PHP 变量插入字符串时使用单引号。它比双引号快约 9 倍;)

于 2013-08-13T16:15:18.677 回答
1

You forgot the name of the select when you write it with php:

change this:

echo "<select id='userSelect' class='userSelect'>";

to

echo "<select id='userSelect' name='userSelect' class='userSelect'>";
于 2013-08-13T16:12:16.280 回答