2013-02-07 3 views
2

테이블에서 채워진 행이있는 양식이 있습니다. 각 행에는 사용자가 확인할 수있는 "체크 박스"가 있습니다.체크 박스 배열을 반복합니다.

양식을 제출할 때 어떤 확인란을 선택했는지 읽고 데이터 테이블에 결과를 삽입 할 수 있기를 원합니다.

내 코드는 지금까지 FORM :

<form method="post" name="form1" action="<?php echo $editFormAction; ?>"> 
<table 
<?php do { ?> 
<tr> 
<td>input type="text" name="InspectRoomNo" value="<?php print $row_InspectItems['AuditItemNo']; ?>"></td> 
<td>php echo $row_InspectItems['AuditItem']; ?>td> 
<td>input name="check[]" type="checkbox" ></td> 
</tr> 
<?php } while ($row_InspectItems = mysql_fetch_assoc($InspectItems)); ?> 
<input type="submit" value="Insert record"> 
</table> 

인서트 : 나는 데 문제는 모든 체크 박스에 대한 반환 된 값입니다

while($row = mysql_fetch_assoc($Items)) 
{ 
$array[] = $row['AuditItem']; 
} 


foreach($array as $id) { 
$AuditItemID = mysql_real_escape_string($id); 

if(isset($_POST['check'])){ 
$Checked = mysql_real_escape_string($_POST['check'][$row]); 
} 
} 

도, 사실 테이블에서 $ 항목을 읽어 들인다 확인란이 선택되지 않은 경우

누구든지이 문제를 해결할 수 있습니까?

감사합니다.

답변

6

이처럼 수행

if(!empty($_POST['check'])) { 
    foreach($_POST['check'] as $check) { 
     echo $check; 
    } 
} 
2

당신은 체크 박스 이름 내부의 항목 ID를 넣어해야합니다

<td><input name="check[<?= $row_InspectItems['AuditItem']; ?>]" type="checkbox" /></td> 

를 그리고, 당신은 단순히 그것을 반복 할 수 있습니다

foreach ($_POST['check'] as $id => $value) { 
    // do stuff with your database 
} 

을 나는이 스크립트가 신뢰할 수있는 누구에게나 실행보다 있으리라 믿고있어, ID 목록을 위조하기가 쉽기 때문입니다. 현재 사용자에게 해당 레코드를 업데이트 할 권한이 있는지 확인하십시오.

0
무슨 일이 일어나고 무엇

, 당신이 당신의 $_POST['check'] 배열 (이 배열입니다!)가보다 작은 것을 볼 수 있도록 선택된 체크 박스가 서버로 전송받을 것입니다 화면에 표시된 항목 수.

ID를 추가하여 체크 박스가 선택되었는지 확인하고 단일 값 대신 배열을 처리하도록 PHP 처리 코드를 조정하십시오.

여러분은 또한 모든 행을 InspectRoomNo으로 덮어 쓰고 있으므로 배열을 사용해도 좋습니다.

<td><input type="text" name="InspectRoomNo[<?php echo row_InspectItems['AuditItemNo']; ?>]" value="<?php print row_InspectItems['AuditItemNo']; ?>"></td> 
<td><?php echo $row_InspectItems['AuditItem']; ?></td> 
<td><input name="check[<?php echo row_InspectItems['AuditItemNo']; ?>]" type="checkbox" ></td> 
:

양식 측과 같을 것