【发布时间】:2013-01-25 01:59:39
【问题描述】:
所以我在表单中有一个选择...
<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>
看起来不错,对吧?然后我想检查是否设置了整个表单:
if(isset($_FILES['fichier']) && isset($_POST['nom']) && isset($_POST['a']) && isset($_POST['c']) && isset($_POST['t']) && isset($_POST['auteur']) && isset($_POST['aca'])) echo 'tout';
这总是返回 FALSE,我知道这是由于 'aca'。当我尝试...
if(isset($_POST['aca'])) echo 'aca';
它返回 TRUE 如果我在列表中选择了一些东西,而另一个条件仍然没有回显“tout”,所以我只看到了“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>
完整的 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';
?>
【问题讨论】:
-
我们需要更多信息才能继续。 HTML 和相关的 PHP 代码会很有帮助。
-
呃……你怎么知道所有其他的东西都设置好了?显然
aca已设置,所以它必须是其他之一。全部打印出来看看哪个没有设置。 -
当我从条件中删除
isset($_POST['aca'])时,它按预期返回 TRUE。 -