2011-12-28 2 views
0

while 루프를 통해 생성 된 여러 확인란을 사용하여 Array를 만들려고합니다. 확인란이 등 등, 'to_delete[1]', 'to_delete[2]'라는 이름하는 내가 해봤 배열 문이 있습니다PHP - 확인란의 배열을 만들려고 시도합니다.

$toDelete = array($_POST['to_delete']); 
$toDelete = array($_POST['to_delete'][]); 

가 배열이 veryify, 나는 인쇄 있지만 찾을로 이동 empty print_r($toDelete). 내가 도대체 ​​뭘 잘못하고있는 겁니까? 코드는 다음과 같습니다. 예, 절차 적으로이 작업을 수행 한 다음 OOP로 다시 작성합니다. 여기에 대한 도움을 큰 감사!

$showQ = "SELECT * FROM urls"; 
$result = mysql_query($showQ); 
$numRows = mysql_num_rows($result); 
$row = mysql_fetch_array($result); 

if(!$result) { 
    mysql_error(); 
    } else { 
    echo "<form action='".$_SERVER["PHP_SELF"]."' method='post'>"; 
    $i=0; 
    while($row = mysql_fetch_array($result)) { 
    echo "<input type='text' class='manId' name='manId[]' value=" . $row['id'] . " />"; 
echo "<input type='text' class='url' name='url[]' value=" . $row['url'] . " />"; 
echo "<input type='checkbox' name='to_delete[" .$i. "]' /><br/>\n"; 
$i++; 
} 
echo "<input type='submit' value='delete' name='submit' />"; 
echo "</form>"; 
} 
$toDelete = array($_POST['to_delete[]']); 
print_r($toDelete); 

는 궁극적으로 내가 배열을 통과 확인하는 것을 참조하고 테이블에서 해당 행을 삭제합니다.

+0

무엇이 전송되는지 보려면 print_r ($ _ POST)로 시작한 다음 질문을 업데이트하십시오. –

+0

print_r ($ _ POST [ "to_delete"]); ? – Jim

답변

2

array() 호출을 사용하는 배열을 만들고 싶지는 않지만 액세스하려면 호출하십시오. $_POST은 배열로 []으로 끝나는 입력 이름을 수신하므로 $_POST에있는 해당 배열 키는 이미 배열입니다. 코드를 작성한 방법에 따라 $_POST의 하위 배열을 포함하는 한 요소 배열을 할당합니다. 대신 다음을 시도하십시오.

// Test if $_POST['to_delete'] is set and non-empty 
// If it's empty, create an empty array, otherwise assign it to $toDelete 
$toDelete = empty($_POST['to_delete']) ? array() : $_POST['to_delete']; 
print_$($toDelete); 
관련 문제