2013-02-20 3 views
0

50 개 제품이 표시된 페이지가 있습니다. 각 제품은 최대 4 개의 범주를 가질 수 있습니다.값이있는 다차원 선택 배열 게시

이 페이지는 하나의 저장 버튼이 필요하므로 3 가지 정보를 보내는 방법을 알아 내려고합니다. 제품 id, 모두 4 제품 categories 및 카테고리 values입니다.

I에게 제출 얻을 :

여기
35:Array 
88:Array 

현재 구조 :

<select name="[ PRODUCT ID ][ CATEGORY ONE ]"> 
<option value="[ CATEGORY ID ]"> CATEGORY NAME </option> 
</select> 
<select name="[ PRODUCT ID ][ CATEGORY TWO ]"> 
<option value="[ CATEGORY ID ]"> CATEGORY NAME </option> 
</select> 
<select name="[ PRODUCT ID ][ CATEGORY THREE ]"> 
<option value="[ CATEGORY ID ]"> CATEGORY NAME </option> 
</select> 
<select name="[ PRODUCT ID ][ CATEGORY FOUR ]"> 
<option value="[ CATEGORY ID ]"> CATEGORY NAME </option> 
</select> 

여기 2 개 제품이다 (명심 4 개 범주를 가질 수 있습니다 각 제품 등이 50이 될 것입니다) 코드의 가치 :

<? 
if(isset($_POST['productCat'])){ 
    foreach($_POST['productCat'] as $a=>$b){ 
     echo $a.':'.$b.'<br>'; 
    } 
} 

?> 
<form method="post"> 
<select name="productCat[35][1]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[35][2]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[35][3]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[35][4]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[88][1]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[88][2]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[88][3]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<select name="productCat[88][4]"> 
    <option value="[3]">3</option> 
    <option value="[4]">4</option> 
    <option value="[5]">5</option> 
    <option value="[6]">6</option> 
    <option value="[7]">7</option> 
    <option value="[8]">8</option> 
</select> 
<input type="submit" value="Save"> 
</form> 
+1

실제로 문제가 무엇인지 작성 해주세요? 당신이 쓰는 물건은 진술하지만 정확히 원하는 것은 아닙니다. – SteAp

답변

0

당신이

을 가지고 있기 때문에 0
<select name="productCat[35][1]"> 
<select name="productCat[35][2]"> 
... 
<select name="productCat[88][1]"> 
<select name="productCat[88][2]"> 

$ _POST [ 'productCat']

실제로 배열 인 값. 이 같은 배열 :

array(35 => array(1 => .., 2 => .., 3 => ..., ...), 
      88 => array(1 => .., 2 => .., 3 => ..., ...) 
     ); 

따라서, 디버그 출력 매우 합리적인.

은이 같은 배열 액세스 : 일반적

$_POST[ 'productCat' ][ 35 ][ 3 ] 
$_POST[ 'productCat' ][ 88 ][ 5 ] 

변수 (식) 배열을 참조하는 경우 -이 서브 어레이에 액세스하기 단지 [...]을 추가 - 다른 배열의 일부로서 짝수 배열.

  • $ _POST [ 'productCat'] 전체 무리가 스크립트에 의해 반환되는
  • $ _POST [ 'productCat'] [35]입니다 제품의 모든 값 35
  • $ _POST [ 'productCat'] [35] [5] 제품의 카테고리 5의 선택 값은 35
+0

배열의 배열에 어떻게 액세스합니까? –

+0

설명이 추가되었습니다. – SteAp

0

당신은 쉽게 당신이 게시하는 객체로 데이터를 수집 할 수 있도록 당신은 data- 속성과 함께 이것에 대한 jQuery를 사용한다 서버.

당신은 아마 GET 쿼리 변수에 저장할 수있는

제품 ID : ?prodId=43

<select data-category="1"> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
</select> 

그리고 jQuery를 부분 :

var info = []; 

$('select').each(function() { 
    info.push({ 
       'category': $(this).data('category'), 
       'value': $(this).val() 
      }); 
});