下拉菜单的isset方法与文本输入不同?

时间:2012-11-28 23:56:52

标签: php html

如果我使用isset()作为文本输入,那么我就这样写:

$newpass = (isset($_POST['newpass'])) ? $_POST['newpass'] : '';

现在,如果我有一个如下所示的下拉菜单:

<select name="students">
<option value="">Please Select</option>
<option value="john">John Doe</option>
<option value="Mike">Mike Smith</option>
</select>

然后我可以使用与用于文本输入相同类型的isset:

$studentsdrop = (isset($_POST['students'])) ? $_POST['students'] : '';

或下拉菜单中的isset是不同的?

3 个答案:

答案 0 :(得分:1)

这一行:

$newpass = (isset($_POST['newpass'])) ? $_POST['newpass'] : '';

检查名为newpass的变量是否已发布到脚本中。

选项选择值可以通过javascript / jQuery获得并发布到php脚本(服务器端),以便通过AJAX或GET / POST进行操作。这是一个例子:

<html>
    <head>
        <!--<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>-->
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#mySelect').change(function() {
                    var sel = $(this).val();
                    //alert(sel);
                    $.ajax({
                        type: "POST",
                        url: "another_php_file.php",
                        data: 'theOption=' + sel,
                        success: function(data) {
                        }
                    });
                });
            });
        </script>
    </head>
<body>

<select name="students" id="mySelect">
    <option value="">Please Select</option>
    <option value="john">John Doe</option>
    <option value="Mike">Mike Smith</option>
</select>

档案:ANOTHER_PHP_FILE.php

$theVar = $_POST['theOption'];
echo 'I received [' . $theVar . ']';

答案 1 :(得分:-1)

您根本不需要使用isset。在任何一种情况下

答案 2 :(得分:-1)

isset()检查变量是否存在并且未设置为NULL。它根本与HTML无关。

在你的情况下:

$studentsdrop = (isset($_POST['students'])) ? $_POST['students'] : '';

只要您知道students将会出现,您就不需要这样了。 最常见的时间isset()用于表单提交,正在确定一个复选框。例如,如果您提交的表单中包含复选框,并且未选中该复选框,则不会将其传递到$_POST变量中。这一点至关重要:

$checkbox_name = isset($_POST['checkbox_name']) ? $_POST['checkbox_name'] : '';

对于select$_POST变量将始终返回,即使它是空的。