-3

如果我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 与下拉菜单不同?

4

3 回答 3

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 . ']';
于 2012-11-29T00:01:43.190 回答
-1

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

在你的情况下:

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

只要你知道它students会出现,你就不需要这个。提交表单时最常用的 isset() 是确定一个复选框。例如,如果您提交了一个带有复选框的表单,并且该复选框没有被选中,它就不会被传递到$_POST变量中。这对于使用至关重要:

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

在 a 的情况下,select变量$_POST将始终返回,即使它是空的。

于 2012-11-28T23:59:46.673 回答
-1

你根本不需要使用isset。在任一情况下

于 2012-11-28T23:58:13.820 回答