2014-12-23 6 views
0

다음 코드는 원본 코드입니다. 코드에서 체크 된 각 체크 박스에 대한 입력 값을 게시하려고했습니다.Ajax에서 체크 박스 값 보내기

 <tbody class="myFormSaldo"> 
      <tr> 
      <td> <input name="checkbox['.$i.']" type="checkbox" value="'.$i.'" id="chb'.$ref.'" onchange="enableList(this);" class="chb_group" /> </td> 

      <td> <input name="items['.$i.']" type="text" readonly value="'.$obj->items.'" /> </td> 

      <td> <input name="size['.$i.']" type="text" readonly value="'.$obj->size.'Kg" /> </td> 

      <td> <input name="quantity['.$i.']" type="text" readonly value="'.$obj->myquantity.'" /> </td> 



     if($_SERVER["REQUEST_METHOD"] == "POST") { 
      foreach($_POST['checkbox'] as $i) { 

          $product_name=$_POST['items'][$i]; 
          $product_size=$_POST['size'][$i]; 

위의 코드는 정상적으로 작동합니다. 검사 된 각 확인란의 각 입력 값을 게시합니다. 예를 들어; 검사 된 체크 박스가 세 개가 있고 양식이 제출 된 경우 $ product_name, $ product_size 등의 세 배열 (3 루프)을 게시합니다.

지금 내가 원하는 것은 Ajax를 사용하는 것입니다. 이처럼 :

var product_name= document.getElementById('product_name').value; 
    var product_size = document.getElementById('product_size').value; 
    $.ajax(
    { 
     type: "POST", 
     url: "../actions/selectReferenceOrder.php", 
     data: product_name='+product_name+'&product_size ='+product_size , 
     cache: false, 
     success:function(html) 
     { 
      document.getElementById('outputReference').innerHTML = html; 
     } 
    }); 

하지만 계산 또는 체크 박스

이제 내 질문은 PHP는 아약스에서 foreach($_POST['checkbox'] as $i)와 마찬가지로 동일한 작업을 수행하는 방법이다

를 찾을 수 있습니까?

저는이 모든 것들에있어서 초보자입니다.

도움 주셔서 감사합니다.

+3

시도'$ ('#의 form_id')를 사용합니다. 직렬화()'. – Ghost

+0

@ Ghost, 빠른 아이디어에 감사드립니다. 제발 저에게 어떻게 보여줄 수 있습니까? – klaudia

+0

jquery 폼 플러그인을 사용하여 폼 트로프 아약스의 모든 정보를 폼 액션 페이지에 보낼 수도 있습니다. –

답변

1

당신이 사용하는 당신의 product_name 문자열로가 아닌 변수로 : 의견 슬픈 고스트를 사용 formdata로

data: 'product_name='+product_name+'&product_size='+product_size, 

또는 :

이보십시오.

var dataString = $('form').serialize(); 

이상 아약스에서 :

data: dataString, 
... 
+0

사실이 양식의 serialize가 어떻게 작동하는지 아직 모르겠습니다. 당신이 볼 수 있듯이, 내가 체크 박스에서 보내는 것은 체크 박스 자체의 값이 아닌 그것과 관련된 입력이다. 체크 박스가 세 개 있다면 (루핑),'name = "아이템에 대해 세개의 입력이있을 것이다 [ '. $ i.'] "'and'name ="size [ '. $ i.'] "'. – klaudia

+0

다음 양식 직렬화에 대한 내용은 여기를 참조하십시오. http://api.jquery.com/serialize/ 원하는대로 문자열을 만들지 만, 첫 번째 솔루션을 사용할 수도 있습니다. – vaso123

+0

나는 이것을 읽었으며, 예제에서는 체크 박스의 값만 보내고 체크 박스와 관련된 입력은 보내지 않는다. – klaudia

0

<script> 
$.ajax({ 
     type: "POST", 
     url: "../actions/selectReferenceOrder.php",   
     data: "{'product_name':" + product_name + ", 'product_size':" + product_size+ "}", 
     cache: false, 
     dataType: "html" 
     success:function(html) 
     { 
      document.getElementById('outputReference').innerHTML = html; 
     } 
    }); 
</script> 
+0

당신은 나에게 이것이 무엇을하고 있으며 무엇을 가지고있는 것과 다른 점이 무엇인지를 설명 할 수 있습니까? – klaudia

+0

data : product_name = '+ product_name +'& product_size = '+ product_size,이 코드의 오류는 –

+0

입니까? –

0

Ajax를 단순화 시도 ...이 시도 check here

,
var data = $('form').serialize(); 

$.post("../actions/selectReferenceOrder.php", { name: data}).done(function(data) { 
     alert("Data Loaded: " + data); 
     }); 

또는

$.post("../actions/selectReferenceOrder.php", { product_name: product_name, product_size : product_size }).done(function(data) { 
    alert("Data Loaded: " + data); 
    });