2014-04-12 3 views
1

체크 된 체크 상자를 기반으로 여러 행을 삭제하려고하는데 php 페이지의 아약스 요청에 각 확인란의 값을 전달하고 있습니다. 그러나 implode을 사용하여 개별 ID를 얻습니다. wor35 누군가 나를 도울 수 있습니까?각각 잘못된 인수 오류를 제공하는 PHP

JS

$('.delete').on('click', function() { 
    var val = []; 
    $(':checkbox:checked').each(function(i){ 
     val[i] = $(this).val(); 
    }); 
    $.ajax({ 
    type: "POST", 
    url: "delete.php", 
    data: {dtar: 'dms', mxd: val}, 
    cache: false, 
    success: function(response) 
    { 
     $("#print").html(response); 
    } 
}); 

}); 당신은 ..

PHP는이 작업을 수행 한 이후

if(isset($_POST["dtar"]) && $_POST["dtar"] == 'dms'){ 
    $id = $_POST['mxd']; 
    $ms_id = implode(",", $id); 
    if(!empty($id)){ 
    $stmt = $db->prepare("....."); 
    $stmt->bind_param(...); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
    while($row = $result->fetch_assoc()){ 
    foreach ($ms_id as $id) { 
    //do something 
    } 
    } 
    } 
+0

글쎄,'implode()'_never_는 배열이지만 문자열을 반환합니다. 'forach'로 문자열을 반복 할 수 없습니다. – arkascha

답변

0

..

$ms_id = implode(",", $id); 

귀하의 $ms_id 지금은 문자열이고 당신은

foreach ($ms_id as $id) { 

아래 이러는 수 없습니다은 문자열을 통해 반복되므로이 문제의 원인이됩니다. 이 배열 때문에 대신 $id 변수를 통해 ..

foreach ($id as $idvalue) { 
//do something 
} 
+0

그럼 어떻게해야합니까? – user3412305

+0

답변에 표시된대로 '$ id'값을 반복합니다. –

0

1) $ ms_id을 확인

루프 ($ 행 $의에서 그 결과 동안

if (is_array($ms_id)) { 
    foreach ($ms_id as $id) { 
    //do something 
    } 
} 

2하여 배열) 인 > fetch_assoc()) {// 나는 $ 행 뒤에 '='기호가 없다고 생각합니다.

3) 지금까지 ther은 PDO에서 fetch_assoc() 함수가되었습니다.

$result = $stmt->get_result(); 
    while($row $result->fetch_assoc()){ 

바로 사용 $ 결과 = $ stmt-> fetchAll (PDO :: FETCH_ASSOC)

+0

감사합니다. 나는 실제로 mysqli 준비 문을 사용하고 있습니다. – user3412305

0

그렇게 is_array()를 사용하여 배열에 대한 수표를 사용하고 잘못 조건이 끄트머리 implode()를 사용하여 문자열 배열을 변환하는 당신 while

if(isset($_POST["dtar"]) && $_POST["dtar"] == 'dms'){ 
     $id = $_POST['mxd']; 
     // $ms_id = implode(",", $id); 
     if(!empty($id)){ 
     $stmt = $db->prepare("....."); 
     $stmt->bind_param(...); 
     $stmt->execute(); 
     $result = $stmt->get_result(); 
     while($row = $result->fetch_assoc()){ 
     if(is_array($id)) { 
      foreach ($id as $mid) { 
      //do something 
      } 
     } 
     } 
    } 
관련 문제