2014-09-26 71 views
5

之前,我有一个有单选按钮的表单,当然,按提交时它会在单选按钮中提交值。

但我该怎么做,如果我不想单选按钮了?当按下表格单元格或行时,会自动将该值提交到下一页,而无需提交按钮?

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

我如何提交不使用提交按钮或单选按钮,因为当我按排,其提交的值到下一个页面,我去到下一个页面。

谢谢

编辑。

<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 2014-09-26 00:55:04

+0

我该怎么做? – 2014-09-26 00:56:24

+0

[此](http://stackoverflow.com/questions/26014630/submit-form-with-jquery-by-click-on-table-cell)有帮助吗? – ForguesR 2014-09-26 00:57:46

回答

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 2014-09-26 01:02:15

+2

@DaOgre如果你想准备语句,那么当然,无论如何,这是另一个话题,它会变得太长,但我理解你的关注 – Ghost 2014-09-26 01:03:44

+0

哦,它的工作。呵呵。谢谢。嗯。如何在使用此值时放置2个值?因为我还需要提交$ payment和$ carrier,所以不包含在代码中。这就是为什么我不喜欢使用单选按钮,因为只有1可以提交,或者我错了吗?谢谢。 – 2014-09-26 01:10:31

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> 

我希望它工作小号!

+0

请详细解答您的问题。教OP去钓鱼:) – dimo414 2014-09-26 04:40:26

+0

@ dimo414它选择计费表单元素并以这种方式序列化其输入,然后在用类'row_submit'点击tr后通过xhr提交这个表单,最后文档主体将被刷新形式反应 – majicson 2014-10-17 04:53:19

相关问题