Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在表单提交时获取多选下拉列表中的所有选定项_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 在表单提交时获取多选下拉列表中的所有选定项

Javascript 在表单提交时获取多选下拉列表中的所有选定项,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有一个很长的表单,最初用数据库中的值填充Multi-Select下拉列表。发生这种情况后,用户可以选择从下拉列表中添加或删除所选项目。但是每次提交它并转到下一页时,它总是保持原始数组,并且没有任何更改 function getGrade($id, $grades_array) { $counter = 0; $sql = "Select grade FROM grades"; $result = mysql_query($sql) or die

我有一个很长的表单,最初用数据库中的值填充Multi-Select下拉列表。发生这种情况后,用户可以选择从下拉列表中添加或删除所选项目。但是每次提交它并转到下一页时,它总是保持原始数组,并且没有任何更改

function getGrade($id, $grades_array)
{
        $counter = 0;
        $sql = "Select grade FROM grades";
        $result = mysql_query($sql) or die (mysql_error());
        echo '<select name="grade" multiple="multiple" id="grades_selected">';
        while ($row = mysql_fetch_array($result)) {

                if ($row['grade'] != $grades_array[$counter]) {
                        echo "<option>" . $row['grade'] . "</option>";
                } else {
                        echo "<option selected=" . $row['grade']  . ">" . $row['grade'] . "</option>";
                        $counter = $counter + 1;
                }
        }
        mysql_free_result($result);
        echo '</select>';
}
我所需要做的就是,当按下submit按钮时,它需要从下拉列表中获取所有选定的值,并使用所有这些值创建一个新数组。

您可以使用来实现这一点。这将使您能够在浏览器会话中将数组值保存为字符串


或者,您也可以使用,但这会将会话中的值保存在多个选项卡中,这可能不是您在这种情况下想要的。

您想在客户端中获取它们吗?序列化表单项,发布表单项,将php作为js变量打印出脚本标记中的值。或者保存到localstorage Easier为什么不直接从$\u get或$\u POST变量获取它们呢?我对所有这些都很陌生,但我最好的解释是,multiselect是从数据库表填充的,而所选值是从另一个表填充的。然后,用户可以添加或删除任何他们想要的选项,但当他们点击提交按钮时,php已经完成,我无法找到一种方法让它再次检查multiselect以检查是否有任何更改。你认为还有其他方法吗?你可以给我一个小例子吗?我是为了展示这个概念而创作的。在输入文本字段中输入字符串,然后单击“设置数据”。然后刷新页面并单击“获取数据”。您仍将获得刷新前输入的数据,因为它已保存在浏览器的存储器中。您可以使用您喜爱的浏览器的开发工具查看存储在此存储器中的值。它在单击“提交”时获取选定项目的值,并使用sessionStorage将其保存在浏览器中。单击“创建数组”按钮后,它将从会话存储中获取数据并显示它。请注意,即使在单击“提交”后刷新浏览器,上次单击的“提交”的值仍然保持不变。这类似于提交后进入下一页。