Php input vérification

Anthony88
Invité n'ayant pas de compte PHPfrance

19 déc. 2014, 11:28

Bonjour à tous,

Je viens vers vous pour un petit problème. J'ai un petit formulaire dans lequel on indique une quantité.

Code : Tout sélectionner

<td id="UserQte"><input type="text" name="qtt[]" value=""></td>
Je récupère les input dans un tableau qtt[].

Avant traitement j'aimerais faire une vérification si une des clefs du tableau à une valeur qui lui est associé égale à 0 alors on fait rien :
$qttFin = $_POST['qtt'];
	$key = array_search(0, $qttFin ); // j'ai essayé avec ça mais c'est un echec ^^
		
    if ($key == ""){
    echo "erreur vous avez mis au moins une quantité à 0";
}else{
     echo "wow ça marche let's go !";
}
Merci d'avance de vos conseils

Mammouth du PHP | 1966 Messages

19 déc. 2014, 11:50

essaye

$key !== false comme condition
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Invité
Invité n'ayant pas de compte PHPfrance

19 déc. 2014, 12:43

toujours pas ^^ mais merci

Mammouth du PHP | 737 Messages

19 déc. 2014, 12:48

Slt,

Essaie avec la fonction in_array()

http://php.net/manual/fr/function.in-array.php

et un simple ==0 ça marche pas ?

Mega
;)
Dyslexics are teople poo

Mammouth du PHP | 2278 Messages

19 déc. 2014, 13:04

Ca ne mange de pas de pain (type number est reconnu par ci par là : http://www.alsacreations.com/tuto/lire/ ... umber.html

:
<form method = 'post' action ='traite.php'>
<td id="UserQte"><input type="number" name="qtt[]" value=""></td>
<td id="UserQte"><input type="number" name="qtt[]" value=""></td>
<td id="UserQte"><input type="numbe" name="qtt[]" value=""></td>
<td id="UserQte"><input type="number" name="qtt[]" value=""></td>
<button type ="submit">ok</button>
</form>
et traite.php
<?PHP
print_r($_POST);
$qtt = $_POST['qtt'];
//$existe = array_search(0,$qtt);/ /ca considère vide comme 0!!!  array_search indique le rang du 0 dans le tableau; tu pourrais t'en servir pour un message plus précis
$existe = array_search("0",$qtt);/ /parce que ce que tu tapes est pris comme du texte, même avec type ="number"

Version finale:

<?PHP
print_r($_POST);
$qtt = $_POST['qtt'];
//var_dump (is_int ($qtt[0])); pour voir le type de valeur
$existe_zero = array_search("0",$qtt, TRUE); //pas sûr que TRUe soit indispensable
print "$existe_zero";
if ($existe_zero === 0)// === o valeur du booléen; == 0 valeur trouvée si la première case est à 0
{
print "ko";
}
else
{
$existe_vide = array_search("",$qtt, TRUE);
var_dump($existe_vide);
print "ok mais il peut y avoir des vides";
if ($existe_vide !== 0)
{
print "il y a du vide";
}
}
?>
print "$existe";
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Invité
Invité n'ayant pas de compte PHPfrance

19 déc. 2014, 14:41

Merci à tous ça m'aide vraiment