【问题标题】:Posting a value from Dropdown List from PHP div page从 PHP div 页面的下拉列表中发布值
【发布时间】:2013-08-14 00:26:57
【问题描述】:

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

【问题讨论】:

  • 我只发布了一小部分代码。我在最后一段中声明它位于表单标签内。
  • 我注意到为时已晚,并删除了评论。不好

标签: php jquery html


【解决方案1】:

你用php写的时候忘记了select的名字:

改变这个:

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

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

【讨论】:

    【解决方案2】:

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

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

    应该是

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

    每个带有 name 属性的表单元素都被发布了它的值。如果不输入 name 属性,则无法从 $_POST 数组中检索该值。另请注意,禁用的表单输入也不会发布。

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

    【讨论】:

    • 我也注意到了。哈,好吧。它也能说明问题。
    • 抱歉 :) 编辑了关于 PHP 引号的答案 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2014-11-29
    • 1970-01-01
    相关资源
    最近更新 更多