J'essaye actuellement de valider un côté de serveur de formulaire, la façon dont cela fonctionne est toutes les données sont placées dans et tableau, avec le champ de formulaire comme clé et les données de champ comme valeur, cependant je dois vérifier que les clés ont une valeur associée à l'autre, je veux que la soumission s'arrête et que l'utilisateur doive éditer les détails et puis re-soumettre, est-ce qu'il y a une vérification rapide que je peux exécuter plutôt que séparer le tableau et vérifier avant est mis dans le tableau avec un commutateur ou perd des déclarations if?Validez chaque élément d'un tableau?
Répondre
Une option consiste à faire un peu des deux. Avoir un tableau séparé d'options de champ avec le nom du champ en tant que clé.
$fieldTypes = array('nameFirst' => 'name',
'nameLast' => 'name',
'phone' => 'phone',
'email' => 'email');
foreach($input as $key => $value) {
switch($fieldTypes[$key]) {
case 'name':
//run $value against name validation
break;
case 'phone':
//run $value against phone validation
break;
case 'email':
//run $value against email validation
break;
default:
//code here for unknown type
}
}
Maintenant, qui pourrait être utilisé dans un certain nombre de façons, et facilement élargi pour inclure des choses comme si le champ est nécessaire ou non, ou même des messages d'erreur. En transformant le tableau $fieldTypes
en un tableau multidimensionnel ou un tableau d'objets contenant les données. De cette façon, si vous décidez d'ajouter un champ, cela n'impliquera probablement pas beaucoup de changement dans le code de validation.
Que diriez-vous quelque chose comme
<?php
$arrayFilled = true;
foreach($array as $key=>$value) {
$arrayFilled = trim($value) == '' ? false : $arrayFilled;
if($arrayFilled === false) { break; }
}
if($arrayFilled === false) {
echo "missing data";
}
else {
echo "filled array";
}
vous pouvez vérifier plus que juste une chaîne vide, mais je vais laisser vous
Sico87,
Plus de qu'autrement vous ne veut pas tester tous les champs simultanément. Par exemple, vous pouvez avoir un champ de contact qui contient une option d'entrée de numéro de téléphone qui n'est pas obligatoire, et le rejet de la soumission pour cette raison serait problématique.
Dans de nombreux cas, il est plus facile de tester vos champs individuellement afin de pouvoir accorder à chacun une attention particulière. Vous devez accorder une attention particulière aux adresses e-mail et accorder une attention particulière aux anniversaires.
Traiter tous les égaux pourrait causer de très graves problèmes à long terme.
function fieldEmpty($value) {
return trim($value) == '';
}
if (count(array_filter($array, 'fieldEmpty'))) {
die('bad');
}
- 1. Comment générer chaque élément de tableau Perl entouré de guillemets?
- 2. Parcourez chaque élément récemment créé dans Rails?
- 3. Comment imprimer chaque élément d'un ARRAY en PL/SQL?
- 4. SQL: obtenir Nième élément dans chaque groupe
- 5. Fondu dans chaque élément - l'un après l'autre
- 6. DatagGridViewColumn.DataPropertyName à un élément de tableau?
- 7. Ajout d'une dimension à chaque élément d'un fichier numpy.array
- 8. Validez une entrée de type long
- 9. Comment imprimer un élément de tableau associatif?
- 10. Ajouter un élément au tableau PHP
- 11. Python: trouver un élément dans un tableau
- 12. Supprimer un élément arbitraire d'un tableau JavaScript
- 13. tri élément de tableau en utilisant javascript
- 14. comment obtenir un élément de tableau Flex
- 15. Mapping à un élément d'un tableau
- 16. Comment ajouter un élément au tableau C++?
- 17. Ajouter un élément à une chaîne [] tableau
- 18. jQuery comment échanger chaque instance de « et » ajouter balise <span> à chaque élément
- 19. Insérer une image après chaque élément de la liste
- 20. Comment parcourir une liste en répétant chaque élément en Python
- 21. Modèle d'élément différent pour chaque élément d'une liste WPF?
- 22. Utiliser des boucles pour obtenir chaque élément dans un ListView?
- 23. Appelez la fonction membre sur chaque élément d'un conteneur
- 24. Scriptaculous Droppables onDrop callback, Comment référencer chaque élément?
- 25. XSLT: Foreach itère pour chaque élément, mais affiche la valeur du premier élément?
- 26. incrémenter la valeur de tableau à chaque pression de bouton?
- 27. mettre chaque texte entouré via tag html, dans un tableau?
- 28. fonction php pour diviser un tableau à chaque ligne vide?
- 29. Indexation d'un tableau à chaque cycle (en secondes)
- 30. C# Lecture de chaque valeur d'un tableau retourné
Pourriez-vous tabuler vos lignes? – Sampson
Meh! n'a pas appuyé sur l'espace assez de fois ... – Anthony
@Anthony - Merci, homme :) Code plus propre = lecteurs plus heureux. – Sampson