2011-01-14 5 views
0

그래서 나는 다음과 같습니다 배열 유무 :업데이트 배열

[0] => Array 
    (
     [image] => http://images0.jpg 
     [title] => 
    ) 

[1] => Array 
    (
     [image] => http://image1.jpg 
     [title] => 
    ) 

[2] => Array 
    (
     [image] => http://image2.jpg 
     [title] => 
    ) 

을 그리고 레코드를 삭제하는 방법이 배열에서 나는 시려면와 데이터베이스에이 배열을 저장하고, 예를 들면 키 2 때 내가 해제 데이터베이스에서 설정되지 않았습니다.?

+0

나는 데이터베이스에서 항목을 제거하기 위해이 방법을 권하고 싶지 않다 :

기본적으로 배열은 다음과 같이됩니다. 그렇지 않으면 배열에 "없는"것을 찾으면 결국 모든 행을 삭제하게됩니다! –

+0

그래서 가장 좋은 방법은 무엇입니까? 기존 항목을 배열과 비교하고 존재하지 않는 요소를 제거하려고합니다. 아이디어가 없다. 너 나 좀 줄 수있어? – Jasiufila

답변

1

내가 그것을 이런 식으로 할 것이다 :

체크 박스의 형태로 추가 필드 유형에 추가를, 당신은 더 나은 사용자 경험을위한 몇 가지 자바 스크립트를 추가 할 수 있습니다.

코드는 다음과 같이 될 수있다 :

foreach($files as $key=>$file){ 
    echo '<div class="file" id="file_'.$key.'">'; 
    $this->Form->input("$key.title"); 
    $this->Form->input("$key.image"); 
    $this->Form->input("$key.deleted", array('type'=>'checkbox')); 
    echo '</div>'; 
} 

체크 박스에 사용자가 클릭 경고 "당신이 확실"이 나타날 수 있으며, 사용자가 "예"를 클릭 한 후 주변 DIV 경우 #file_XXX를 숨김으로 설정할 수 있습니다.

기본적으로 div가 숨겨 지지만 사용자가 양식을 제출하면 입력란이 표시됩니다.

그런 다음 saveAll()을 사용하여 데이터를 저장 한 다음 나중에 삭제 된 레코드를 삭제할 수 있습니다. 설명은 매우 상세하지

[0] => Array 
    (
     [image] => http://images0.jpg 
     [title] => 
     [deleted]=>0 
    ) 

[1] => Array 
    (
     [image] => http://image1.jpg 
     [title] => 
     [deleted]=>1 
    ) 

[2] => Array 
    (
     [image] => http://image2.jpg 
     [title] => 
     [deleted]=>0 
    ) 

을, 그러나 희망이 이해할 수 :

+0

문제는 양식이 없으며 xml에서 데이터를 읽습니다. 해결책을 찾았습니다. 먼저 키와 이미지로 데이터베이스에서 데이터를 읽은 다음 in_array ($ database_images, $ xml_images)를 사용하여 결과를 새로운 배열에 쓴 다음 데이터베이스에서이 배열의 이미지를 삭제합니다. 이해하시기 바랍니다. – Jasiufila