У меня есть массив PHP, который я использую для создания формы HTML. Массив PHP таков:
<?php
$vdb = array (
array( "Alabama", 275),
array( "Alaska", 197),
array( "Arizona", 3322));
?>
PHP для генерации HTML-формы приведен ниже. Мне нужно, чтобы значением было имя состояния, потому что есть некоторый AJAX, который я использую для отображения состояний, выбранных пользователем.
<?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>";
?>
То, что я пытаюсь сделать, это при отправке формы, с выбранными пользователем состояниями, пройти через массив PHP и суммировать числа из выбранных состояний. Поэтому, если бы я проверил Алабаму и Аляску, я бы хотел добавить 275 + 197.
Это то, что я думал, сработало бы, но это не так:
<?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++;
}
?>
и тогда $ ven_total должен быть итогом, который я ищу. Тем не менее, $ ven_total становится первым выбранным флажком, а остальные игнорируются. Я делаю это правильно с AJAX, отображая итоговую сумму на внешнем интерфейсе, но я не знаю, как передать это в отправку формы. Я бы предпочел не использовать переменные GET и URL, потому что пользователь может что-то ввести в URL и изменить счетчик. Любая идея, что я делаю неправильно, или лучший способ приблизиться к этому, который я смог бы понять? (Очень начинающий программист.)