2014-09-26 2 views
5

Раньше у меня есть форма, которая имеет переключатель и, конечно же, отправляет значение в переключателе при нажатии submit.

но как это сделать, если я больше не хочу радиокнопки? При нажатии ячейки таблицы или строки автоматически будет отправлено значение на следующую страницу без кнопки отправки?

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

как мне сделать это представить без использования кнопки или радиокнопку представить, когда я нажимаю эту строку, она подает значение на следующую страницу и я перейти на следующую страницу.

спасибо

EDIT.

<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

затем используйте javascript (jquery tagged) для запуска отправки по строке нажмите – Ghost

+0

как мне это сделать? –

+0

Имеет ли [это] (http://stackoverflow.com/questions/26014630/submit-form-with-jquery-by-click-on-table-cell) помощь? – ForguesR

ответ

2

Просто используйте строки для отправки. Рассмотрим следующую разметку:

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

Тогда на ваших 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> 

Тогда на 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

Просто уточнить, так как кажется, что OP является новым для PHP/Web. Вы должны прочитать о дезинфекции ваших входов, а не напрямую использовать переменную $ _POST, но в противном случае это правильный способ сделать это. – DaOgre

+2

@DaOgre мы будем, если вы хотите подготовить заявления, тогда, конечно же, в любом случае, это целая другая тема , он будет слишком длинным, но, конечно, я понимаю вашу озабоченность. – Ghost

+0

О, это сработало. хе-хе. Спасибо. Хм. Как разместить 2 значения при использовании этого? потому что мне также нужен $ payment и $ carrier для отправки, он не включен в код. Вот почему я не люблю использовать переключатель, потому что может быть отправлено только 1, или я ошибаюсь? Спасибо. –

0

Попробуйте это:

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

Я хочу это Работа s!

+0

Пожалуйста, объясните свой ответ, чтобы объяснить, что делает ваш код.Учить OP для рыб :) – dimo414

+0

@ dimo414 Он выбирает элемент биллинговой формы и сериализует свои входы таким образом, что оператор = значение затем передает эту форму через xhr после нажатия на tr с классом «row_submit», наконец, тело документа будет обновлено с помощью ответ формы – majicson

Смежные вопросы