2012-11-28 14 views
-3

如果我使用isset()用于文本输入,然后我把它写这样的: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'] : '';

或者是不同的下拉菜单?

+0

如果你实际上在问这个问题之前尝试过的代码,你会发现,它的作品,而不是不得不花了时间问这个问题。 – Sammitch

+0

我建议你多阅读一下PHP如何工作(或者一般的服务器端脚本)以及它如何用于处理表单。 –

+0

为什么会有所不同?它只是另一个文本字段。 'isset()'就像'@()',除了前者阻止调试永远。 – mario

回答

-1

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

你的情况:

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

只要你知道students将是现在你不需要这个。 最常见的时间isset()用于表单提交,正在确定一个复选框。例如,如果您提交的表单具有复选框,并且该复选框未被选中,则不会将其传递到$_POST变量中。这是使用关键:

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

select$_POST变量的情况下,将总是返回,即使它是空的。

-1

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

+2

-1允许PHP通知在_purpose_上发生是一种不好的做法。 (这是如果postvars没有设置的话会发生什么 –

+0

+1 meme coders混淆了通知和错误,很少理解调试提示的目的 – mario

+0

@mmmshuddup那么是什么? –

1

这条线:如果名为newpass变量被张贴到脚本

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

检查。

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

<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 . ']';