2011-12-05 4 views
2

jQuery ajax을 사용하여 checked 체크 박스를 처리하려면 어떻게해야합니까? 그러면 각각 checked 체크 박스를 html 테이블에 ajax.php으로 어떻게 보내나요? jquery로 데이터 테이블의 테이블 행을 업데이트하십시오.

내가 지금까지 시도한 것입니다 :

ajax.php

session_start(); 
if (isset($_POST['id']) && isset($_POST['to']) && isset($_SESSION['user']['id'])) { 
    if (is_numeric($_POST['id']) && is_numeric($_POST['to'])) { 
     include("mysql_connector.php"); 
     $user = $_SESSION['user']['id']; 
     $sendTo = mysql_real_escape_string(trim($_POST['to'])); 
     foreach ($_POST['id'] as $id) { 
      $id = mysql_real_escape_string(trim($id)); 
      mysql_query("UPDATE `email` SET status = '$sendTo' WHERE `email_id` = '$id' AND `userid` = '$user'"); 
     } 
    } 
} 

Javascript:

$(".submit").click(function() { 
    var id = $("#id").val(); 
    var to = $("#bins").val(); 
    var dataString = 'id=' + id + '&to=' + to; 
    $.ajax({ 
     type: "POST", 
     url: "ajax.php", 
     data: dataString, 
    }); 
}); 

html:

<form method="POST"> 
    <table id="inventory" class="table"> 
     <thead> 
      <tr> 
       <th style="text-align: center;"><a href="#" name="checkall" id="checkall" onclick="checkAll(this)" class="checkall">Check All</a></th> 
       <th>Time Received</th> 
       <th>Email</th> 
       <th>Subject</th> 
       <th>ID</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr class="email"> 
       <td style="text-align: center;"><input type="checkbox" name='msg[]' class="id" value="2" /></td> 
       <td>1231231</td> 
       <td>test</td> 
       <td>test</td> 
       <td>0</td> 
      </tr> 
      <tr class="email"> 

       <td style="text-align: center;"><input type="checkbox" name='msg[]' class="id" value="3" /></td> 
       <td>1231231</td> 
       <td>test</td> 
       <td>test</td> 
       <td>1</td> 
      </tr> 
     </tbody> 

    </table> 
    </br> 
    <select name="bins" class="bins"> 
     <option value="1">Archive</option> 
     <option value="2">Read</option> 
     <option value="3">Unread</option> 
     <option value="4">Save</option> 
    </select> 
    <input type="submit" name="move" value="Move" class="submit" style="width:auto;"/> 
</form> 

독서 감사합니다.

+1

이 포스팅은 도움이 될 수 있습니다 http://stackoverflow.com/questions/5090055/handling-array-field-post-data –

답변

2

먼저 개의 중복 ID가 여러 개있는 dom 요소가없는 것은입니다. 이러한 확인란에 ID가 필요한 경우 ID를 고유하게 만드십시오. ID가 필요하지 않으면 완전히 삭제하십시오.


가 할 체크 모두의 값을 체크 박스의 목록을 얻으려면 :

var checkedVals = []; 
$("input[type='checkbox']:checked").each(function() { 
    checkedVals.push($(this).val()); 
}); 

또는 이름으로 확인란의 다른 그룹을 가져올 수 :

var checkedMsgVals = []; 
$("input[name='msg[]']:checked").each(function() { 
    checkedMsgVals.push($(this).val()); 
}); 

가이를 보내려면 PHP를 호출 할 때 데이터 패킷에 포함 시키십시오. 이렇게하려면 쿼리 문자열이 아닌 개체를 보내야합니다.

var dataObj = {'id': id, 'to': to, 'checkedValues': checkedMsgVals }; 

$.ajax({ 
    type: "POST", 
    url: "ajax.php", 
    data: dataObj, 
}); 
+0

는 조언을 주셔서 감사 나 중복 된 ID에 대한 알려줍니다. ^.^도움을 주신 Adam에게 감사드립니다. – Kyle

+0

문제 없음 카일 - 행운을 빕니다 –

관련 문제