J'ai un tableau PHP que j'utilise pour générer un formulaire HTML. Le tableau PHP est ceci:Correspondance des éléments de tableau pour obtenir un élément de tableau à un autre index
<?php
$vdb = array (
array( "Alabama", 275),
array( "Alaska", 197),
array( "Arizona", 3322));
?>
Le PHP pour générer le formulaire HTML est ci-dessous. J'ai besoin que la valeur soit le nom de l'état, car il y a du AJAX que j'utilise pour afficher les états que l'utilisateur a choisis.
<?php
echo "<table border='1'><thead><tr><th></th><th>State</th><th>Contacts</th><th>Email</th></tr></thead>";
for ($row = 0; $row < 42; $row++) {
echo "<tr><td class='input_button'><input type='checkbox' name='vdb[]' value='".$vdb[$row][0]."' title='".$vdb[$row][1]."' /></td>";
echo "<td>".$vdb[$row][0]."</td>";
echo "<td>".$vdb[$row][1]."</td>";
}
echo "</table>";
?>
Ce que je suis en train de faire est, sur présentation de la forme, avec les états de l'utilisateur sélectionné, boucle à travers le réseau de PHP et le total des chiffres des états sélectionnés. Donc, si je vérifié l'Alabama et de l'Alaska, je veux ajouter 275 + 197.
C'est ce que je pensais avoir travaillé, mais ce n'est pas:
<?php
$vendors = array();
if (isset($_POST["vdb"])) {
$vendors = $_POST["vdb"];
}
$ven_i = 0;
$ven_j = 0;
$ven_total = 0;
foreach ($vendors as $value) {
foreach ($vdb as $vdb_value) {
if ($vendors[$ven_i] == $vdb[$ven_j][0]) {
$ven_total += $vdb[$ven_j][1];
}
$ven_j++;
}
$ven_i++;
}
?>
puis ven_total $ devrait être le total Je cherche. Cependant, $ ven_total finit par être la première case cochée, et elle ignore le reste. Je le fais correctement avec l'AJAX, affichant le total sur le front-end, mais je ne sais pas comment le transmettre à la soumission du formulaire. Je préfère ne pas utiliser les variables GET et URL, car un utilisateur pourrait saisir quelque chose dans l'URL et modifier le nombre. Une idée de ce que je fais mal, ou une meilleure façon d'aborder ce que je serais capable de comprendre? (Très un programmeur novice.)
Comment est construit le tableau '$ vdb'? Est-ce que ça vient d'une mysql_query ou quelque chose? Est-ce que c'est codé statiquement? –
Si vous n'utilisez jamais $ value ou $ vdb_value ET que vous effectuez des appels index ++, pourquoi utilisez foreach au lieu d'un normal? – unholysampler
@smotchkkiss $ vdb est un tableau statique, les numéros sont mis à jour manuellement tous les deux semaines/mois. @unholysampler Je suppose que je pourrais utiliser pour, j'utilisais foreach parce qu'il s'arrête automatiquement à la fin du tableau, non? Je n'aurais pas à m'inquiéter d'en répéter un trop ou un trop peu de fois. Et en fait, je suppose que je pourrais utiliser $ value au lieu de $ vendeurs [$ ven_i] – bccarlso