2011-10-29 4 views
0

누구나 올바른 방향으로 나를 가리킬 수 있습니까? 나는 정말로 혼란 스럽다 (초보자 : D). 예 :변수가 배열에 설정되어 있는지 확인 하시겠습니까?

<form action="<?php $_server['php_self'] ?>" method=post> 
<table width="50%" style="border: 1px solid #999;" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="35%"> 
     <input type="button" value="Add Subitem"> 
     <input type="button" value="Add Category"> 
    </td> 
    <td width="65%"> 
     <input type="hidden" name="row[]" value="1"> 
     <input type="text" name="categ[]" value="Sample Category" > 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="button" value="Add Subitem"> 
     <input type="button" value="Add Category"> 
    </td> 
    <td> 
     <input type="hidden" name="row[]" value="2"> 
     <input type="text" name="sub[]" value="Sample Subitem" > 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <input type="button" value="Add Subitem"> 
     <input type="button" value="Add Category"> 
    </td> 
    <td> 
     <input type="hidden" name="row[]" value="3"> 
     <input type="text" name="categ[]" value="Sample Category" > 
    </td> 
    </tr> 
</table> 
<input type="submit" name="insBut" value="Save"> 
</form> 

[] 행을 어떻게 반복 할 수 있습니까? 그 행에 categ 또는 sub가 있는지 찾아보십시오. , 나는이

$row = $_post['row']; 
$categ = $_post['categ']; 
$sub = $_post['sub']; 

for ($i=0;$i<count($row);$ii){ 
    if (isset($categ[$i])){ 
     $insQuery = pg_query("insert into rptdata_categ (blah blah) values (blah blah)"); 
    }elseif (isset($sub[$i])) { 
     $insQuery = pg_query("insert into rptdata_sub (blah blah) values (blah blah)"); 
    } 
} 

을 시도했지만 값은 잘못, 내가

echo $row[$i]."=".$categ[$i]; 

으로 반향 시도하고

난 당신이 그것에 대해 생각하는 바로 경우 그 알
1=Sample Category 
2=Sample Category 
3= 

을 제공합니다 하지만 어떻게 만들 수 있습니까?

1=Sample Category 
2= 
3=Sample Category 

오, 내가 잊지 전에 사용자가 카테고리 또는 하위 항목을 추가 할 수있는 카테고리 또는 하위 항목을 추가 할 수 있습니다.

+0

'$ ii'는 실제 코드에서'$ i ++'를 읽습니까? 왜냐하면 그렇지 않다면, 이것은 아마도 당신의 문제 일 것입니다 (심지어 파싱한다면) – DaveRandom

+0

그냥 오타였습니다 : D – Gen

+0

그래서 복사/붙여 넣기 대신에 다시 타이핑 했습니까? 나는 이해하지 못한다. – pguardiario

답변

0

이미 원하는 행 번호 (row[])가 있기 때문에 텍스트 입력의 name에 그 번호를 넣고 숨겨진 것을 완전히 삭제하지 않는 이유는 무엇입니까?

<td> 
    <input type="text" name="categ[1]" value="Sample Category" /> 
</td> 
... 
<td> 
    <input type="text" name="sub[8]" value="Sample Subitem" /> 
</td> 

등등. 그런 다음 선택한 배열 인덱스가 이미 채워집니다.

+0

나는 얼마나 많은 필드가 있는지 모르겠다. 단지 예제 일 뿐이다. 사용자는 어디서든 행을 삽입 할 수 있으며, 카테고리 또는 하위가 될 수있다 ... 두 번째 행에 "categ를 추가"를 클릭하면 그 사이에 행이 생성된다. 첫 번째와 두 번째 행은 기본적으로 사용자가 버튼을 클릭하면 사용자가 클릭 한 행 위에 행이 만들어집니다. . . – Gen

0

빈 배열 필드는 최종 배열에 포함되지 않습니다. sub[1], sub[2] 같은 필드에 행 번호를 추가해야합니다. 첫 번째 위치에 몇 개의 필드가 있는지 알고 있으므로 올바른 행 ID가있는 새 필드 (JS 오른쪽?)를 추가 할 수 있습니다. 기본 필드 (3)의 번호를 시작점으로 설정하고, 사용자가 var를 앞당긴 버튼을 클릭 할 때마다

관련 문제