2012-06-28 2 views
1

AJAX를 사용하여 PHP 페이지에 게시하는 확인란 집합을 원하지만 게시 후에 동일한 확인란을 사용하여 동일한 PHP 페이지에 다른 선택 항목 집합을 지정할 수있게하려고합니다. 세트의 수를 계산 한 다음, 세트를 PHP 페이지의 데이터로 사용하십시오.동일한 확인란을 여러 번 선택하여 여러 세트를 만들려면 어떻게해야합니까?

어떻게 구현 될지 알 수 없습니다. 어떤 아이디어?

의 index.php :

<form id="checkboxes"> 
    <input type="checkbox" id="1" name="checkboxes[]" value="1" /> 
    <input type="checkbox" id="2" name="checkboxes[]" value="2" /> 
    <input type="checkbox" id="3" name="checkboxes[]" value="3" /> 
    <input type="checkbox" id="1" name="checkboxes[]" value="4" /> 
    <input type="checkbox" id="1" name="checkboxes[]" value="5" /> 
    <input type="button" id="button" name="submit" value="Submit" /> 
</form> 
<script type="text/javascript"> 
    $(function() { 
    $("#button").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "process.php", 
     data: $("form#checkboxes").serialize(), 
     success: function(data) { 
     $("#div").load('success.php') 
     } 
    }); 
    }) 
    }) 
</script> 

process.php :

$data = array(); 
foreach($_POST['checkboxes'] as $key => $value){ 
    $data[] = "$value"; 
} 
+1

시도 :

<?php session_start(); if (!isset($_SESSION["data"])) $_SESSION["data"] = array(); foreach($_POST['checkboxes'] as $key => $value){ $_SESSION["data"] = "$value"; } // Print out the final array, if there's a parameter final! if (isset($_GET["final"])) foreach ($_SESSION["data"] as $data) echo $data; ?> 

그리고 자바 스크립트에 대한

, 당신은 꼬추를 재설정해야 : 그래서, 당신은이 방법을 사용할 수 있습니다 거기에서. – GrayB

+0

체크 박스의 첫 번째 데이터 집합을 저장 한 다음 확인란을 다시 설정하고 사용자가 다시 선택하게 한 다음 첫 번째 데이터 집합 외에도 process.php에 해당 데이터를 게시하려고합니다. – user1461465

+0

그런 다음 세션을 사용해야합니다! 내 대답을 확인하십시오. :) –

답변

0

시간이 지남에 따라 데이터가 우세하도록하려면 세션을 사용해야합니다. 그래서 우리는 당신을 도울 수있는 당신이 시도 무엇의 일부 코드 샘플을 추가

<form id="checkboxes"> 
    <input type="checkbox" id="1" name="checkboxes[]" value="1" /> 
    <input type="checkbox" id="2" name="checkboxes[]" value="2" /> 
    <input type="checkbox" id="3" name="checkboxes[]" value="3" /> 
    <input type="checkbox" id="1" name="checkboxes[]" value="4" /> 
    <input type="checkbox" id="1" name="checkboxes[]" value="5" /> 
    <input type="button" id="button" name="submit" value="Submit" /> 
</form> 
<script type="text/javascript"> 
    $(function() { 
     $("#button").click(function() { 
      $.ajax({ 
       type: "POST", 
       url: "process.php", 
       data: $("form#checkboxes").serialize(), 
       success: function(data) { 
        $("#div").load('success.php'); 
        $("form#checkboxes > input[type='checkbox']").removeAttr('checked'); 
       } 
      }); 
     }); 
    }); 
</script> 
+0

좋아요, 이해합니다. 그러나 사용자가 확인란을 사용하여 세 가지 데이터 집합을 말하게하려면 어떻게해야할까요? 각 데이터 세트가 자체 세션 변수에 저장되도록 어떻게 증가시킬 수 있습니까? – user1461465

+0

다음과 같이'$ _SESSION [ "data"]'를'$ _SESSION [ "data"] [0]','$ _SESSION [ "data"] [1]','$ _SESSION [ 데이터 "] [2]'! 그리고 세 번째 시간 이후에 제출하려고 할 때, 그가 제출할 수있는 시간은 세 번이라고하는 오류 메시지를 보내야합니다! 단순한! :) –

+0

오케이. 배열 키 증가분은 어떻게 구현합니까? if 문을 세 개 사용하는 것에 대해 생각하고 있습니다. 그게 좋겠 니? – user1461465

0

당신은 아약스 호출의 성공 기능을 사용할 수 있습니다. 우리는 각 체크 박스의 값을 얻은 다음 아약스를 통해 양식을 제출하고 기본값을 방지 한 다음 양식 제출 후 모든 상자를 선택 취소합니다.

$('something').submit(function(e){ 
    e.preventDefault(); 
    var checked = []; 
    $.each($('input[type=checkbox]'), function(i,v){ 
    if($(this).is(':checked')){ 
     checked.push($(this).val()); 
    } 
    }); 
    $.ajax({ 
    url: 'someurl.ext', 
    type: 'post', 
    data: checked, 
    success: function(data){ 
     $.each($('input[type=checkbox]'), function(i,v){ 
     $(this).prop('checked', false'); 
     }); 
    } 

    }); 
}); 
관련 문제