2010-05-24 3 views
0

페이지에 게시하기 위해 일부 입력 필드가있는 작은 테이블을 사용하고 있습니다. 특정 악기 번호에 대해 사용자가 채우는 데이터를 검색하고 싶습니다.동적 게시물 값 검색

내 코드

<form name="frmDeposit" action="paymentdeposited.php" method="post"> 
    <table cellpadding="0" cellspacing="0" border="0" id="table" class="tinytable" style="width:700px;"> 
     <thead> 
      <tr> 
       <th><h3>Email</h3></th> 
<th><h3>Amount Paid</h3></th> 
<th><h3>Instrument Type</h3></th> 
<th><h3>Instrument No.</h3></th> 
<th><h3>Date Paid</h3></th> 
<th class="nosort"><h3>Date Deposited</h3></th> 
<th class="nosort"><h3>Bank Name</h3></th> 
<th class="nosort"><h3>Slip No.</h3></th> 
<th class="nosort"><h3>Submit</h3></th> 
      </tr> 
     </thead> 
     <tbody> 
<?php 
foreach($paymentsdeposited as $paymentdeposited) 
{ 


?> 
      <tr> 
       <td><?php echo $paymentdeposited[email];?></td> 
       <td><?php echo $paymentdeposited[amount];?></td> 
<td><?php echo $paymentdeposited[instrument];?></td> 
       <td><?php echo $paymentdeposited[instrumentnumber];?></td> 
<td><?php echo $paymentdeposited[dated];?></td> 
<td><input type="text" name="txtDateDeposited_<?php echo $paymentdeposited[pk_paymentinstrumentid];?>" class="field date-pick"/></td> 
<td><input type="text" name="txtBankName_<?php echo $paymentdeposited[pk_paymentinstrumentid];?>" class="field"/></td> 
<td><input type="text" name="txtSlipNo_<?php echo $paymentdeposited[pk_paymentinstrumentid];?>" class="field"/><input type="hidden" name="txtPaymentInstrumentNo_<?php echo $paymentdeposited[pk_paymentinstrumentid];?>" value="<?php echo $paymentdeposited[pk_paymentinstrumentid];?>" class="field"/></td> 
<td><input type="submit" name="btnSubmit1" value="Submit"/></td> 

      </tr> 
<?php 
} 
?> 

     </tbody> 
    </table> 

인 print_r 명령 출력

Array 
(
[txtDateDeposited_57] => 2010-05-07 
[txtBankName_57] => pnb 
[txtSlipNo_57] => 121 
[txtPaymentInstrumentNo_57] => 57 
[btnSubmit1] => Submit 
[txtDateDeposited_51] => 
[txtBankName_51] => 
[txtSlipNo_51] => 
[txtPaymentInstrumentNo_51] => 51 
[txtDateDeposited_52] => 
[txtBankName_52] => 
[txtSlipNo_52] => 
[txtPaymentInstrumentNo_52] => 52 
[txtDateDeposited_45] => 
[txtBankName_45] => 
[txtSlipNo_45] => 
[txtPaymentInstrumentNo_45] => 45 
[txtDateDeposited_47] => 
[txtBankName_47] => 
[txtSlipNo_47] => 
[txtPaymentInstrumentNo_47] => 47 
) 

나는 그가 값을 체결하는 ID 57의 값을 검색합니다. 하지만이 값을 검색하기위한 논리를 구성 할 수 없습니다. 나는 그것을 역동적으로 만들고 싶다.

답변

2

explode을 사용하십시오. 예컨대 :

foreach ($POST AS $key => $value) { 
    if (strpos ($key, '_') !== false) { 
     list($field, $id) = explode ('_', $key, 2); 

     if ($value) { 
      var_dump ($field, $id, $value); 
     } 
    } 
} 

을 또는 당신은 이드를 알고있는 경우 :

var_dump ($_POST['txtPaymentInstrumentNo_'.$Id]); 

편집

간단한 코드입니다. 짐승이 아니야.

+2

최종 인수는 반환 된 배열의 요소 수를 지정하므로'explode ('_', $ key, 2);를 원한다고 생각합니다. '$ tmp', fyi를 피하기 위해서'list ($ field, $ id) = explode ('_', $ key, 1);'를 사용할 수 있습니다. 밑줄이 먼저 존재하는지 확인하는 것이 더 좋습니다! – notJim

+0

네, 맞습니다. 이것을 가리키는 thx. –

+0

특정 악기에 대해 사용자가 입력 한 내용을 기반으로 테이블을 업데이트하려고합니다. 이 코드는 나에게 모든 ID를 줄 것이다.하지만 나는 그가 id를 입력하고 싶다. –

1

내가 배열 표기법을 사용하여 입력 이름을 포맷 할 것이다 :

<td><input type="text" name="txtDateDeposited[<?php echo $paymentdeposited[pk_paymentinstrumentid];?>]" class="field date-pick"/></td> 

당신의 결과 데이터로 액세스 얻을 수 있도록하는 것이

$_REQUEST['txtDateDeposited']['57'] 

갱신 :

foreach($_POST as $key => $value) { 
    $keyPieces = explode("_", $key); 
    $field = implode("_", array_slice($keyPieces, 0, count($keyPieces)-1)); 
    $id = $keyPieces[count($keyPieces)-1]; 
    // txtDateDeposited_57 becomes 
    // $id -> 57 
    // $field -> txtDateDeposited 
} 

당신이 확신하는 경우 당신은 하나의 밑줄 만 사용하고 있습니다 :

foreach($_POST as $key => $value) { 
     $keyPieces = explode("_", $key); 
     $field = $keyPieces[0]; 
     $id = $keyPieces[1]; 
     // txtDateDeposited_57 becomes 
     // $id -> 57 
     // $field -> txtDateDeposited 
    } 

도 작동합니다.

위의 방법을 사용하는 경우, 배열을 계산하는 대신 $ pieces [0]을 할 수 있도록 숫자/식별자를 먼저 넣는 것이 좋습니다. 또한 array_slice ($ pieces, 1)는 추가 카운트없이 다시 가져옵니다.

+0

안녕하십니까.이 $ _REQUEST [ 'txtDateDeposited'] [ '57']은 (는) 정적입니다. 동적으로 만들고 싶습니다. –

+0

배열 키 구문 분석을 보여주는 답변이 업데이트되었습니다. –

+0

내가 작성한 항목을 기반으로 테이블을 업데이트하고 싶습니다. 특정 악기에 대한 사용자. 코드는 모든 ID를 제공하지만 입력 한 ID를 원합니다. –