我不明白为什么我的if if不起作用。这是我的代码:
if (isset($_POST['salle'])){
$idSalle = $_POST['salle'];
echo('La salle séléctionnée est :' . $idSalle . '<br />');
if ($idSalle == "- - - Choisissez une salle - - - ") {
/* DO NOT PASS HERE :( */
$idSalle = "Non séléctionné";
echo('La salle séléctionnée est :' . $idSalle . '<br />');
}
}
但是,当我在清单上选择 - - - Choisissez une salle - - - 时,页面会回复“Lasalleséléctionnéest: - - - Choisissez une salle - - - < /或者,或者,从逻辑上讲,文本应该是“ Lasalleséléctionnéest:Non-selectionné”。
这是我的完整代码:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
</head>
<body>
<?php
include('fonctionsBDD.php');
$bdd = connectionBDD();
$idSalle = 0;
$idUtilisateur = 0;
$dateDebut = 0;
$dateFin = 0;
?>
<!-- Choix des filtres à afficher -->
<p>Quels filtres afficher ?</p>
<form action="" method="POST">
<input type="checkbox" name="cbx-zones">Zones</input>
<input type="checkbox" mname="cbx-salles">Salles</input>
<input type="checkbox" name="cbx-dates">Date</input>
<input type="checkbox" name="cbx-heures">Heures</input>
<p><input type="submit" /></p>
</form>
<!-- Zone filtres -->
<div class="FiltreSalle">
<form action="" method="POST">
<?php
if (isset($_POST['cbx-zones'])) {
/* COntenu d'un filtre ici */
}
?>
<!-- Filtre par Area Name-->
<form action="" method="POST">
<br /><br />
<label>Choisir la zone </label><br />
<select name="zone">
<?php
echo " <option unselected>- - - Choisissez une zone - - - </option>\n";
$reponseSalle = $bdd->query('SELECT * FROM mrbs_area ORDER BY area_name');
while ($donnees = $reponseSalle->fetch(PDO::FETCH_OBJ))
{
?>
<option value="<?php echo $donnees->id; ?>"> <?php echo $donnees->area_name; ?></option>
<?php
}
?>
</select>
<!-- Filtre par salle -->
<br /><br />
<label>Choisir la salle</label><br />
<select name="salle">
<?php
echo " <option unselected>- - - Choisissez une salle - - - </option>\n";
$reponseSalle = $bdd->query('SELECT * FROM mrbs_room ORDER BY room_name');
while ($donnees = $reponseSalle->fetch(PDO::FETCH_OBJ))
{
?>
<option value="<?php echo $donnees->id; ?>"> <?php echo $donnees->room_name; ?></option>
<?php
}
?>
</select>
<!-- Filtre par utilisateurs-->
<br /><br />
<label>Choisir l'utilisateur</label><br />
<select name="utilisateur">
<?php
echo " <option unselected>- - - Choisissez un utilisateur - - - </option>\n";
$reponseSalle = $bdd->query('SELECT * FROM mrbs_users ORDER BY name');
while ($donnees = $reponseSalle->fetch(PDO::FETCH_OBJ))
{
?>
<option value="<?php echo $donnees->id; ?>"> <?php echo $donnees->name; ?></option>
<?php
}
?>
</select>
<!-- Filtres par DatePicker -->
<br /> <br />
<script>
$(function() {
$( "#from" ).datepicker({
defaultDate: "+1d",
changeMonth: true,
numberOfMonths: 1,
dateFormat : '@',
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});
$( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 1,
dateFormat : '@',
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
var currentDate = $( ".selector" ).datepicker( "getDate" );
}
});
});
</script>
<label for="from">Du</label>
<input type="text" id="from" name="from">
<label for="to">Au</label>
<input type="text" id="to" name="to">
<input type='submit' value='Envoyer'><br /><br />
</form>
<!-- Traitement des données -->
<?php
/* Une salle seulement */
if (isset($_POST['salle'])){
$idSalle = $_POST['salle'];
echo('La salle séléctionnée est :' . $idSalle . '<br />');
var_dump($idSalle);
if ($idSalle == "- - - Choisissez une salle - - - ") {
$idSalle = "Non séléctionné";
echo('La salle séléctionnée est :' . $idSalle . '<br />');
}
}
/*
$idUtilisateur = $_POST['utilisateur'];
$dateDebut = $_POST["from"];
$dateFin = $_POST["to"];
echo('L utilisateur séléctionné est :' . $idUtilisateur . '<br />');
echo('La date de début séléctionnée est :' . $dateDebut . '<br />');
echo('La date de fin séléctionnée est :' . $dateFin . '<br />'); */
?>
<!-- Requêtage -->
<?php
?>
<?php
/*
$req = $bdd->prepare('SELECT count(*), ?
FROM mrbs_entry JOIN mrbs_room ON mrbs_entry.room_id = mrbs_room.id JOIN mrbs_area ON mrbs_room.area_id = mrbs_area.id
WHERE mrbs_entry.start_time BETWEEN UNIX_TIMESTAMP("'.$datedeb.'") and UNIX_TIMESTAMP("'.$datefin.'")
or mrbs_entry.end_time BETWEEN UNIX_TIMESTAMP("'.$datedeb.'") and UNIX_TIMESTAMP("'.$datefin.'")
and mrbs_entry.create_by like "'.$nomUtilisateur.'";');
$req->execute(array());
while ($donnees = $req->fetch())
{
echo '<li>' . $donnees['nom'] . ' (' . $donnees['prix'] . ' EUR)</li>';
}
echo '</ul>';
$req->closeCursor(); */
?>
</body>
</html>
当我添加一个var_dump($ idSalle);在这里:
/* Une salle seulement */
if (isset($_POST['salle'])){
$idSalle = $_POST['salle'];
echo('La salle séléctionnée est :' . $idSalle . '<br />');
var_dump($idSalle);
if ($idSalle == "- - - Choisissez une salle - - - ") {
$idSalle = "Non séléctionné";
echo('La salle séléctionnée est :' . $idSalle . '<br />');
}
}
我收到了这样的回复:string(32)“ - - - Choisissez une salle - - - ”
我尝试使用trim():
if (isset($_POST['salle'])){
$idSalle = trim($_POST['salle']);
echo('La salle séléctionnée est :' . $idSalle . '<br />');
var_dump($idSalle);
if ($idSalle == trim("- - - Choisissez une salle - - -")) {
$idSalle = "Non séléctionné";
echo('La salle séléctionnée est :' . $idSalle . '<br />');
}
但结果是一样的。
所以,如果有人能帮助我理解......提前致谢。
答案 0 :(得分:1)
我只是想通了。
条件语句失败的原因是因为该选项没有&#34;值&#34;。
将其更改为以下内容:
echo " <option unselected value=\"- - - Choisissez une salle - - - \">Choisissez une salle</option>\n";
因此,如果您愿意,可以删除trim()
并保留空格。
但是,您可能希望从中删除尾随空格。如果这样做,您将需要对条件语句执行相同的操作。
传递测试并使用添加的else{...}
<?php
if (isset($_POST['salle'])){
$idSalle = $_POST['salle'];
echo('La salle séléctionnée est :' . $idSalle . '<br />');
if ($idSalle == "- - - Choisissez une salle - - - ") {
/* DO NOT PASS HERE :( */
$idSalle = "Non séléctionné";
echo('La salle séléctionnée est :' . $idSalle . '<br />');
}
else {
echo "Xxxxxxxxxxxxx";
}
}
?>
<form action="" method="POST">
<br /><br />
<select name="salle">
<?php
echo " <option unselected value=\"- - - Choisissez une salle - - - \">Choisissez une salle</option>\n";
echo " <option value=\"123\">123</option>\n";
?>
</select>
<input type='submit' value='Envoyer'><br /><br />
</form>
测试 - 删除了if ($idSalle == "- - - Choisissez une salle - - -")
失败并使用添加的else{...}
<?php
if (isset($_POST['salle'])){
$idSalle = $_POST['salle'];
echo('La salle séléctionnée est :' . $idSalle . '<br />');
if ($idSalle == "- - - Choisissez une salle - - -") {
/* DO NOT PASS HERE :( */
$idSalle = "Non séléctionné";
echo('La salle séléctionnée est :' . $idSalle . '<br />');
}
else {
echo "Xxxxxxxxxxxxx";
}
}
?>
<form action="" method="POST">
<br /><br />
<select name="salle">
<?php
echo " <option unselected value=\"- - - Choisissez une salle - - - \">Choisissez une salle</option>\n";
echo " <option value=\"123\">123</option>\n";
?>
</select>
<input type='submit' value='Envoyer'><br /><br />
</form>
即使在符合HTML5标准的浏览器上也是如此。