如何在php中使用多个表单来使用相同的输入

时间:2011-09-06 09:05:08

标签: php html forms input

我有15个相同的PayPal“立即购买”按钮,每个按钮都由自己的表单在一个php页面上驱动。每个按钮有大约20个输入变量,但每个项目只有2个(item_name& item_number)。有没有办法清理我的代码并让所有表单使用相同的输入数组?不只是数据,整个字符串。 谢谢,韦恩

示例:

<form target='paypal' action='https://www.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='cmd' value='_cart'>
<input type='hidden' name='business' value='myemail@mydomain.com'>
<input type='hidden' name='lc' value='US'>
<input type='hidden' name='item_name' value='Modern Art Print'>
<input type='hidden' name='item_number' value='MA024'>*
<input type='hidden' name='button_subtype' value='products'>
<input type='hidden' name='no_note' value='0'>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='add' value='1'>
<input type='hidden' name='bn' value='PP-ShopCartBF:btn_cart_SM.gif:NonHostedGuest'>
<input type='hidden' name='on0' value='Select Size'>Buy Print 
<select name='os0'>
<option value='11 x 14'>11 x 14 $30.00</option>
<option value='8 x 10'>8 x 10 $20.00</option>
</select>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='option_select0' value='11 x 14'>
<input type='hidden' name='option_amount0' value='30.00'>
<input type='hidden' name='option_select1' value='8 x 10'>
<input type='hidden' name='option_amount1' value='20.00'>
<input type='hidden' name='option_index' value='0'>
<input type='image' src='https://www.paypalobjects.com/en_US/i/btn/btn_cart_SM.gif' border='0' name='submit' alt='PayPal - The safer, easier way to pay online!'>
</form>

3 个答案:

答案 0 :(得分:1)

创建一个构建表单的函数。例如:

function paypalForm( $item_name, $item_number ) {
    ?>
    <form target='paypal' action='https://www.paypal.com/cgi-bin/webscr' method='post'>
    <input type='hidden' name='cmd' value='_cart'>
    <input type='hidden' name='business' value='myemail@mydomain.com'>
    <input type='hidden' name='lc' value='US'>
    <input type='hidden' name='item_name' value='<?=$item_name?>'>
    <input type='hidden' name='item_number' value='<?=$item_number?>'>*
    <input type='hidden' name='button_subtype' value='products'>
    <input type='hidden' name='no_note' value='0'>
    <input type='hidden' name='currency_code' value='USD'>
    <input type='hidden' name='add' value='1'>
    <input type='hidden' name='bn' value='PP-ShopCartBF:btn_cart_SM.gif:NonHostedGuest'>
    <input type='hidden' name='on0' value='Select Size'>Buy Print 
    <select name='os0'>
    <option value='11 x 14'>11 x 14 $30.00</option>
    <option value='8 x 10'>8 x 10 $20.00</option>
    </select>
    <input type='hidden' name='currency_code' value='USD'>
    <input type='hidden' name='option_select0' value='11 x 14'>
    <input type='hidden' name='option_amount0' value='30.00'>
    <input type='hidden' name='option_select1' value='8 x 10'>
    <input type='hidden' name='option_amount1' value='20.00'>
    <input type='hidden' name='option_index' value='0'>
    <input type='image' src='https://www.paypalobjects.com/en_US/i/btn/btn_cart_SM.gif' border='0' name='submit' alt='PayPal - The safer, easier way to pay online!'>
    </form>
    <?
}

答案 1 :(得分:0)

假设您正在讨论清理HTML标记,而不是在服务器端生成表单......

你可以用Javascript来做到这一点,但是依靠Javascript来实现你的核心网站功能并不是一个好主意,因为它可以被用户禁用,并且可能以你在某些浏览器中没有预测到的方式中断或者其他

我认为,由于您将数据直接提交给Paypal,因此无法控制服务器端,因此答案可能为NO。

如果您正在讨论清理PHP代码,Rijk van Wel的回答可能会有所帮助。

答案 2 :(得分:0)

请参阅此文章:http://www.chami.com/tips/internet/042599i.html

您可以使用多个提交按钮创建单个表单,并同时指定item_name&amp; item_number为按钮的值。这样,输入不会在代码中重复,您可以轻松区分提交的表单。

注意:文章中的服务器端代码是用ASP编写的,但在PHP中它是相同的。请参阅$_POST['buttonNameHere']