HTML 폼을 생성하는 데 사용하는 PHP 배열이 있습니다. PHP 배열은 다음과 같습니다.배열 요소를 일치시켜 다른 인덱스에서 배열 요소 가져 오기
<?php
$vdb = array (
array( "Alabama", 275),
array( "Alaska", 197),
array( "Arizona", 3322));
?>
HTML 폼을 생성하는 PHP는 다음과 같습니다. 나는 사용자가 선택한 상태를 표시하기 위해 사용하고있는 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에서이 작업을 올바르게 수행하고 있지만 폼 제출에이를 전달하는 방법을 모르겠습니다. 사용자가 URL에 무언가를 입력하고 개수를 수정할 수 있기 때문에 GET 및 URL 변수를 사용하지 않을 것입니다. 내가 잘못하고있는 것, 또는 이것에 접근하는 더 좋은 방법은 내가 이해할 수있을 것입니다. (아주 초보 프로그래머.)
'$ vdb' 배열은 어떻게 구축되고 있습니까? 그것은 mysql_query 나 다른 것에서 오는 것입니까? 정적으로 코딩 되었습니까? –
$ value 또는 $ vdb_value를 절대 사용하지 않고 index ++ 호출을 수행하는 경우 왜 표준 대신 foreach를 사용합니까? – unholysampler
@smotchkkiss $ vdb는 정적 배열이며 숫자는 몇 주/개월마다 수동으로 업데이트됩니다. @unholysampler 내가 배열의 끝에 자동으로 멈추기 때문에 나는 foreach를 사용하고 있었다. 너무 많은 것을 반복하거나 너무 적은 것을 반복하는 것에 대해 걱정할 필요가 없습니다. 그리고 실제로, 나는 $ vendors [$ ven_i] 대신 $ value를 사용할 수 있다고 생각합니다. – bccarlso