如何在Jquery中检索所有表单选择的所有选项?

时间:2015-07-20 13:51:35

标签: javascript php jquery html

我希望使用Jquery检索在同一表单中选择的所有不同选项。顺便说一句,主要目标是检索提交的结果。 情况是这样的:

 <form id="myform" action="result.php" method="post">
    <select id="select1" name="select[]">
        <option value="A1">1</option>
        ...
    </select>
    <select id="select2" name="select[]">
        <option value="A1">1</option>
        ...
    </select>
    <input type="submit">
</form>

在result.php中,有这个函数:

 if (!empty($_POST['select'])) {

    $selects = array();

    foreach ($_POST['select'] as $check) {
        $selects[] = $check;

    }
    if(count($selects)==0){
    echo "ERROR";}else{echo "OK"}
}

如何在有表格的页面中显示带有result.php回显结果的提醒?

2 个答案:

答案 0 :(得分:1)

执行PHP代码时,您又在服务器端。无论您何时构建HTML输出,都可以在此处包含由PHP创建的脚本标记,其中包含以下内容:

<script>
    alert("<?php echo $selectResults; ?>");
</script>

这是非常难以维护的(你不应该在你的HTML输出中以这种方式混淆PHP代码),但由于我不知道你如何创建你的页面,我希望你明白这一点。

了解执行代码的位置非常重要,而且由于您使用的是PHP(即服务器端),因此没有直接的方法将JavaScript警报“发送”回客户端(此处忽略WebSockets)。

另一种方法是通过AJAX将结果发布到服务器,获取服务器的响应(“ERROR”,“OK”或其他),并在AJAX回调中使用它来提醒消息。同样,由于我不知道你如何构建你的页面,我不知道哪个更可行。

答案 1 :(得分:1)

这需要一些解密,我假设您需要保持您的选择通用。我没有使用无效的select[]命名,而是通过jQuery检索了所有<select>。不确定这是否符合要求。

如果您需要将它们命名为select[],除了以下解决方案之外,我建议您查看Get values from multiple select boxes with same name? Including its value with jquery and php

<强> HTML

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('#mySubmitAjax').click(function(e) {
                var selects = $('select');
                var selects_results = "";

                selects.each(function(i,v) {
                    selects_results += i + '=' + $(v).val() + '&';
                });

                $.ajax({
                    url: 'result.php',
                    method: 'POST',
                    data: selects_results,
                    success: function(data, status, jqXHR) {
                        alert(data);
                    }
                })
            });
        });
    </script>
</head>
<body>
    <form name="myForm">
        <select>
            <option value="1">one</option>
            <option value="2">two</option>
        </select>

        <select>
            <option value="1">one</option>
            <option value="2">two</option>
        </select>

        <button type="button" id="mySubmitAjax">Submit w/AJAX</button>
    </form>
</body>
</html>

<强> result.php

<?php
    $post = $_POST;
    $results = [];

    foreach($post as $p) {
        $results[] = $p['v'];
    }

    print json_encode($results);

?>