Cet article présente principalement comment résoudre le problème des balises d'entrée avec la même valeur d'attribut de nom lors de la soumission de plusieurs formulaires en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous.
Une question
Au cours du processus de développement de l'entreprise, nous avons rencontré un problème : Comment gérer la soumission de formulaire de plusieurs balises d'entrée avec la même valeur d'attribut de nom ? Le code source est le suivant (le code source est sous la forme) :
<!--{loop $address $index $one}--> <p class="address_item"> <p> <label> <input type="hidden" name="express_price" value="{$one['express_price']}" /> <input type="hidden" name="state_fare" value="{$one['state_fare']}" /> <input type="hidden" name="id" value="{$one['id']}" /> <input type="radio" <!--{if $one[ 'default']=='Y' }-->checked<!--{/if}-->name="address" value="{$one['id']}" /><span name="mobile">{$one['mobile']}</span> </label> </p> </p> <!--{/loop}-->
Deuxième solution
Dans le code source ci-dessus, plusieurs éléments d'entrée avec la même valeur d'attribut de nom sont générés dans le formulaire via la boucle. Lorsque vous cliquez sur Soumettre, le fichier php d'arrière-plan ne peut obtenir qu'un seul élément p en utilisant $_POST. La valeur transmise par l'élément d'entrée, mais la valeur transmise par l'élément d'entrée de type radio doit être celle sélectionnée. En conséquence, modifiez la même valeur d'attribut de nom de certains éléments d'entrée dans le code source ci-dessus en un tableau, puis utilisez la valeur d'attribut de nom de l'élément d'entrée de type radio sélectionné dans le fichier php d'arrière-plan pour déterminer l'intégralité de l'élément p transmis. Le code modifié est le suivant :
<!--{loop $address $index $one}--> <p class="address_item"> <p> <label> <input type="hidden" name="express_price[]" value="{$one['express_price']}" /> <input type="hidden" name="state_fare[]" value="{$one['state_fare']}" /> <input type="hidden" name="id[]" value="{$one['id']}" /> <input type="radio" <!--{if $one[ 'default']=='Y' }-->checked<!--{/if}-->name="address" value="{$one['id']}" /> <span name="mobile">{$one['mobile']}</span> </label> </p> </p> <!--{/loop}-->
fichier php :
$key = 0; $address_id = intval($_POST["address"]); foreach ($_POST['id'] as $k => $v) { if ($v == $address_id) $key = $k; } $_POST['express_money'] = $_POST['exporess_price'][$key];
Recommandations associées :
Sous Linux, résoudre le problème des versions incohérentes de php -v et phpinfo
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!