2014-09-26 17 views
5

Przed, mam formularz, który ma przycisk opcji i oczywiście przesyła wartość w przycisku opcji po naciśnięciu przycisku przesyłania.

ale jak to zrobić, jeśli nie chcę już przycisków radiowych? Po naciśnięciu komórki lub wiersza tabeli automatycznie przesłać wartość do następnej strony bez przycisku Wyślij?

<form method="post" action="billing.php"> 
    <table width="900" border="0" align="center" cellpadding="2" cellspacing="0" id='center'> 
     <tr> 
      <td><input type="radio" name="carrier" <?php if (isset($carrier) && $carrier=="LBC") echo "checked";?> value="LBC"></td> 
      <td><img src="../paymentoptions/LBC.jpg" alt="LBC" class="picture"/></td> 
      <td><p>The Shipping takes 1-2 days for NCR and 2-3 days for any provincial. Payment method only available is through BPI Bank Deposit<p> 
       <div id='price'> Additional ₱250 </div></td> 

     </tr> 
     <tr> 
      <td><input type="radio" name="carrier" <?php if (isset($carrier) && $carrier=="PickUp") echo "checked";?> value="PickUp"></td> 
      <td><img src="../paymentoptions/Pick-up.jpg" alt="Pick-Up" class="picture"/></td> 
      <td><p>Personally pick up your merchandise at our office. Free of Charge. Office hours: 10:00 am to 5:00 pm<p> 
       <div id='price'> Free!! </div></td> 
     </tr> 
    </table> 
</form> 

Jak zrobić to złożyć bez użycia przycisku lub przycisku radiowego przedstawienia, do kiedy nacisnąć rząd podnosi ona wartość na następnej stronie i przejść do następnej strony.

dziękuję

EDYCJA.

<table width="900" border="0" align="center" cellpadding="2" cellspacing="0" id='centerdown'> 
    <tr> 
     <td><input type="radio" name="payment" <?php if (isset($payment) && $payment=="BPI") echo "checked";?> value="BPI"></td> 
     <td><img src="../paymentoptions/BPI.jpg"></td> 
     <td><p>Pay by BPI bank deposit (we need confirmation of payment through email.)<p></td> 
    </tr> 

    <tr> 
     <td><input type="radio" name="payment" <?php if (isset($payment) && $payment=="PickUp") echo "checked";?> value="PickUp"></td> 
     <td><img src="../paymentoptions/Pick-up.jpg"></td> 
     <td><p>Pick up. You have 5 days reservation period. You pay for the merchandise upon pick-up<p></td> 
    </tr> 
</table> 
+0

następnie użyć javascript (oznaczony jquery), aby wyzwolić przesyłanie w wierszu kliknij – Ghost

+0

jak to zrobić? –

+0

Czy [this] (http://stackoverflow.com/questions/26014630/submit-form-with-jquery-by-click-on-table-cell) pomaga? – ForguesR

Odpowiedz

2

Wystarczy użyć wierszy, aby go przesłać. Rozważmy następujący znacznik:

<form method="post" action="billing.php"> 
    <table width="900" border="0" align="center" cellpadding="2" cellspacing="0" id='center'> 
     <tr class="row_submit"> 
       <!-- ^^ simple class assignment --> 
      <td><input type="radio" name="carrier" <?php if (isset($carrier) && $carrier=="LBC") echo "checked";?> value="LBC"></td> 
      <td><img src="../paymentoptions/LBC.jpg" alt="LBC" class="picture"/></td> 
      <td><p>The Shipping takes 1-2 days for NCR and 2-3 days for any provincial. Payment method only available is through BPI Bank Deposit<p> 
       <div id='price'> Additional ₱250 </div></td> 

     </tr> 
     <tr class="row_submit"> 
      <td><input type="radio" name="carrier" <?php if (isset($carrier) && $carrier=="PickUp") echo "checked";?> value="PickUp"></td> 
      <td><img src="../paymentoptions/Pick-up.jpg" alt="Pick-Up" class="picture"/></td> 
      <td><p>Personally pick up your merchandise at our office. Free of Charge. Office hours: 10:00 am to 5:00 pm<p> 
       <div id='price'> Free!! </div></td> 
     </tr> 
    </table> 
</form> 

Wtedy na swoim JS:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('tr.row_submit').on('click', function(e){ 
     $('form').submit(); 
    }); 
}); 
</script> 

Następnie na PHP:

$info_table = array(
    'LBC' => array(
     'price' => 250, 
     'payment' => 'BPI', 
    ), 
    'PickUp' => array(
     'price' => 0, 
     'payment' => '', 
    ), 
); 

if(isset($_POST['carrier'])){ 
    echo $_POST['carrier']; 
    $price = $info_table[$_POST['carrier']]['price']; 
    $payment = $info_table[$_POST['carrier']]['payment']; 
    echo '<br/>' . $price . '<br/>'; 
    echo $payment; 
} 
+0

Wystarczy wyjaśnić, ponieważ wydaje się, że OP jest nowością w PHP/sieci. Powinieneś przeczytać na temat odkażania swoich danych wejściowych i nie używać bezpośrednio zmiennej $ _POST, ale w przeciwnym razie jest to właściwy sposób, aby to zrobić – DaOgre

+2

@DaOgre będziemy, jeśli chcesz przygotować oświadczenia, to oczywiście, oczywiście, że to cały inny temat , będzie za długo, ale oczywiście rozumiem twoje obawy. – Ghost

+0

Och, zadziałało. hehe. Dziękuję Ci. Hmm. Jak umieścić 2 wartości podczas korzystania z tego? ponieważ potrzebuję również $ payment i $ carrier, które nie zostały uwzględnione w kodzie. Dlatego nie lubię używać przycisku radiowego, ponieważ tylko 1 można przesłać, czy jestem w błędzie? Dziękuję Ci. –

0

Spróbuj tego:

<script type="text/javascript"> 
    function submit(){ 
     var data = $("form[action=billing.php]").serialize(); 
     $.ajax({ 
      url: "billing.php", 
      type: "POST", 
      data: data, 
      success: function(out){ 
       $(body).html(out); 
      } 
     }); 
    } 
$(document).ready(function(){ 
$('tr.row_submit').click(function(){submit();}); 
} 

</script> 

życzę go praca s!

+0

Proszę rozwinąć swoją odpowiedź, aby wyjaśnić, co robi twój kod.Naucz OP do łowienia :) – dimo414

+0

@ dimo414 Wybiera element formularza rozliczeniowego i serializuje swoje dane wejściowe w ten sposób operator = wartość, następnie prześlij ten formularz przez xhr po kliknięciu na tr z klasą 'row_submit' wreszcie treść dokumentu zostanie odświeżona wraz z odpowiedź formy – majicson

Powiązane problemy