2017-10-09 22 views
0

ラジオボタンからデータを取得する際に問題があります。私は他のhtmlタグから他のデータを取得することはできますが、ラジオボタンではできません。何故ですか?手伝って頂けますか?PHP:ラジオボタンからデータを取得できませんPOST

私のHTMLコードはここにある:

<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> 

私のPHPスクリプトはここにある間:

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を複製していますあなたの2つの選択肢の属性は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> 

条件を使用して、選択された1検索するには:

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

・ホープ、このことができます!

+0

こんにちは、それでも動作しませんでした:( –

関連する問題