2017-10-09 14 views
0

라디오 버튼에서 데이터를 검색하는 데 문제가 있습니다. 다른 HTML 태그에서 다른 데이터를 검색 할 수는 있지만 라디오 버튼에서는 찾을 수 없습니다. 왜 그런가요? 너 나 좀 도와 줄 수있어?PHP : 라디오 버튼에서 데이터를 검색 할 수 없습니다 POST

내 HTML 코드는 여기에 있습니다 :

내 PHP 스크립트는 여기
<form enctype="multipart/form-data" name="markpayment" method="post" action="test.app"> 
    <input type="hidden" name="action" value="mark_payment"> 
    <input type="hidden" name="client-id" value="{$details[row]->id}"> 
    <input type="hidden" name="invoice-id" value="{$details[row]->invoice_id}"> 
    <input type="hidden" name="period" value="{$details[row]->period}"> 
    <table width="100%" border="0" style="padding-top: 10px;"> 
    <tr align="center"> 
     <td class="radiobut"> 
     <input type="radio" id="choice1" name="payment_status" value="paid"> Paid</td> 
     <td class="radiobut"> 
     <input type="radio" id="choice2" name="payment_status" value="declined"> Declined</td> 
    </tr> 
    <tr align="center"> 
     <td colspan="2"> 
     <div class="paddingRow3"> 
      <select class="selectbut" id="payments" name="payment-method"> 
      <option value="Cheque">Cheque</option> 
      <option value="Deposit">Deposit</option> 
      <option value="Cash">Cash</option> 
      </select> 
     </div> 
     </td> 
    </tr> 
    <tr align="right"> 
     <td colspan="2"> 
     <div class="paddingRow3"> 
      <a href="javascript:void(0);" class="update" onclick="document.markpayment.submit()">Update</a> 
     </div> 
     </td> 
    </tr> 
    </table> 
</form> 

동안 :

if($_REQUEST['action'] == 'mark_payment'){ 
    echo '<pre>'; 
    print_r($_REQUEST); 
    exit; 
} 

내 출력은 다음과 같이 될 것입니다 :

Array 
(
    [NONCE] => f305790c4d8b060121b99fe84a8fdf1a62321b3b06b9097caa8439e2f9c5bae7 
    [action] => mark_payment 
    [client-id] => 2699422 
    [invoice-id] => 13008351 
    [period] => 11 
    [payment-method] => Cheque 
) 
+1

라디오 옵션을 클릭하거나 선택 했습니까? – Akintunde007

+0

@Akintunde 나는 그랬지만 작동하지 않았다. –

+0

@ Akintunde의 의견은 정확하다. 테스트를 위해 라디오 중 하나에 대해 checked = "true"를 설정하고 그 값이 서버에 도달했는지 확인할 수 있습니까? – Juan

답변

1

당신은 name 중복이 두 가지 선택에 대한 속성은 payment_status입니다. 서로 달라야하거나 마지막 입력 요소 (#choice2) 만 사용할 수 있습니다.

나는 다음 예 payment_status_paidpayment_status_declined에 갔어요,하지만 당신은 또한 배열을POST의 데이터를 만들기 위해 대괄호 표기법 name="payment_status[]"를 사용할 수 있습니다. 선택되는 하나 찾으려면

<form enctype="multipart/form-data" name="markpayment" method="post" action="test.app"> 
    <input type="hidden" name="action" value="mark_payment"> 
    <input type="hidden" name="client-id" value="{$details[row]->id}"> 
    <input type="hidden" name="invoice-id" value="{$details[row]->invoice_id}"> 
    <input type="hidden" name="period" value="{$details[row]->period}"> 
    <table width="100%" border="0" style="padding-top: 10px;"> 
    <tr align="center"> 
     <td class="radiobut"> 
     <input type="radio" id="choice1" name="payment_status_paid" value="paid"> Paid</td> 
     <td class="radiobut"> 
     <input type="radio" id="choice2" name="payment_status_declined" value="declined"> Declined</td> 
    </tr> 
    <tr align="center"> 
     <td colspan="2"> 
     <div class="paddingRow3"> 
      <select class="selectbut" id="payments" name="payment-method"> 
      <option value="Cheque">Cheque</option> 
      <option value="Deposit">Deposit</option> 
      <option value="Cash">Cash</option> 
      </select> 
     </div> 
     </td> 
    </tr> 
    <tr align="right"> 
     <td colspan="2"> 
     <div class="paddingRow3"> 
      <a href="javascript:void(0);" class="update" onclick="document.markpayment.submit()">Update</a> 
     </div> 
     </td> 
    </tr> 
    </table> 
</form> 

는 조건부를 사용

if($_REQUEST['action'] == 'mark_payment'){ 
    echo '<pre>'; 
    print_r($_REQUEST); 
    if ($_POST['payment_status_paid']) { 
     // Payment was successful 
    } 
    else { 
     // Payment was declined 
    } 
    exit; 
} 

희망이 도움이!

+0

안녕하세요, 여전히 작동하지 않았습니다. ( –