Php 为什么这个isset返回false?

Php 为什么这个isset返回false?,php,forms,select,isset,Php,Forms,Select,Isset,所以我有一个选择的形式 <select id="aca" name="aca"> <option value="2012">2012-2013</option> <option value="2011">2011-2012</option> <option value="2010">2010-2011</option> <option value="2009">2009-2010<

所以我有一个选择的形式

<select id="aca" name="aca">
  <option value="2012">2012-2013</option>
  <option value="2011">2011-2012</option>
  <option value="2010">2010-2011</option>
  <option value="2009">2009-2010</option>
  <option value="2008">2008-2009</option>
  <option value="2007">2007-2008</option>
  <option value="2006">2006-2007</option>
  <option value="2005">2005-2006</option>
</select>
这总是返回FALSE,我知道这是因为“aca”。当我尝试

if(isset($_POST['aca'])) echo 'aca';
如果我在列表中选择了某个内容,而另一个条件仍然不响应“tout”,则返回TRUE,因此我只看到“aca”。这个js行似乎没有问题,因为其他select返回TRUE

$("select").prop('selectedIndex', -1);
我真的不明白。。。暂停^^”

完整HTML:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Upload</title>
  <link rel="stylesheet" href="style/upload.css"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="js/upload.js"></script>
</head>
<body>

<form method="post" action="" enctype="multipart/form-data">

<fieldset>
<legend>Informations d'upload</legend>
<p>Fichier (tous formats | max. 1 Mo):</p>
<input type="file" name="fichier" size="60"/><br/>
<p>Nom du fichier. Caractères utilisables: alphanumériques °*@()-_()</p>
<input type="text" name="nom" size="40"/>
</fieldset>

<fieldset>
<legend>Classification</legend>
<p>Merci d'indiquer où ce fichier devra être classé.</p>
  <select id="a" name="a">
    <option value="0">BA1</option>
  </select>
  <select id="c" name="c" style="display:none"></select>
  <select id="t" name="t" style="display:none"></select>
</fieldset>

<fieldset>
<legend>Détails</legend>
<p>Auteur:</p>
<input type="text" name="auteur" size="40"/>
<p>Année académique:</p>
<select id="aca" name="aca">
  <option value="2012">2012-2013</option>
  <option value="2011">2011-2012</option>
  <option value="2010">2010-2011</option>
  <option value="2009">2009-2010</option>
  <option value="2008">2008-2009</option>
  <option value="2007">2007-2008</option>
  <option value="2006">2006-2007</option>
  <option value="2005">2005-2006</option>
</select>
</fieldset>

<br/>

<div style="width:500px;text-align:center">
<input type="submit" name="submit" value="Envoyer" />
</div>

</form>
</body>
</html>

上传
信息上传
Fichier(tous格式|最大1个月):


可利用的名称:字母号*@()-(()

分类 谢天谢地

BA1 Détails 导演:

安·阿卡德米克:

2012-2013 2011-2012 2010-2011 2009-2010 2008-2009 2007-2008 2006-2007 2005-2006
完整PHP:

<?php
$formats = array('pdf');
echo strtolower(substr(strrchr($_FILES['fichier']['name'],'.'),1)).'<br/>';
if(isset($_POST['aca'])) echo 'aca';
if(isset($_FILES['fichier']) && isset($_POST['nom']) && isset($_POST['a']) && isset($_POST['c']) && isset($_POST['t']) && isset($_POST['auteur']) && isset($_POST['aca'])) echo 'tout';
if(preg_match("#^[a-zA-Z0-9éè°*@ ()_-]{10,50}$#",$_POST['nom']))
{
echo 'OK';
}
else echo 'Nope';
?>

执行打印($\u POST),您将能够准确地看到设置了什么…

如果未选择任何内容,元素不会发布到服务器。您可以通过选择:

<select id="aca" name="aca">
  <option value="" selected="selected"> </option>
  <option value="2012">2012-2013</option>
  <option value="2011">2011-2012</option>
  <option value="2010">2010-2011</option>
  <option value="2009">2009-2010</option>
  <option value="2008">2008-2009</option>
  <option value="2007">2007-2008</option>
  <option value="2006">2006-2007</option>
  <option value="2005">2005-2006</option>
</select>

2012-2013
2011-2012
2010-2011
2009-2010
2008-2009
2007-2008
2006-2007
2005-2006

同样,您必须为另一个“选择”执行此操作“元素,如果您希望它们在不选择内容的情况下发布。

我们需要更多信息才能继续。HTML和相关的PHP代码会很有帮助。。。你怎么知道其他事情都安排好了?显然,
aca
已设置,因此它必须是另一个。将它们全部打印出来,看看哪一个未设置。当我从条件中删除isset($\u POST['aca'])时,它将按预期返回TRUE。select元素必须具有value属性,否则POST将只接收带有not value和enctype=“multipart/form data”的名称不需要,除非您正在发送文件。即使未选择任何内容,其他select元素也会在一段时间内返回TRUE。现在他们没有了。有些神秘的事情发生了,但你是对的。
<select id="aca" name="aca">
  <option value="" selected="selected"> </option>
  <option value="2012">2012-2013</option>
  <option value="2011">2011-2012</option>
  <option value="2010">2010-2011</option>
  <option value="2009">2009-2010</option>
  <option value="2008">2008-2009</option>
  <option value="2007">2007-2008</option>
  <option value="2006">2006-2007</option>
  <option value="2005">2005-2006</option>
</select>