我需要一个表单提交来调用带有输入变量的php函数(取自表单)

时间:2015-10-27 09:47:06

标签: php html forms

我有一个PHP函数,它接受3个变量并使用它们。

<?php
function securePayPost($cardnumber, $expiry, $cvv) {
//do stuff with $cardnumber, $expiry and $cvv
?>

我有一个表单,用户可以输入卡号,有效期,cvv和其他一些内容:

<form action="" method="post" class="form-signin">
   <h2 class="form-signin-heading">Processing Payment</h2>
   <table width="491" border="0">
      <tr>
         <td width="154">Name on card:</td>
         &nbsp;
         <td width="206"><input type="text" name="cardname" class="input-block-level" placeholder="Name on Card" /></td>
      </tr>
      <tr>
         <td>Card Number:</td>
         &nbsp;
         <td><input type="text" name="creditcard" class="input-block-level" placeholder="Credit Card" /></td>
      </tr>
      <tr>
         <td>Expiry Date:</td>
         <td>
            <select class="form-control" name="ExpMon" title="select a month">
               <option value="1">Jan</option>
               <option value="2">Feb</option>
               <option value="3">Mar</option>
               <option value="4">Apr</option>
               <option value="5">May</option>
               <option value="6">June</option>
               <option value="7">July</option>
               <option value="8">Aug</option>
               <option value="9">Sept</option>
               <option value="10">Oct</option>
               <option value="11">Nov</option>
               <option value="12">Dec</option>
            </select>
            <select class="form-control" name="ExpYear" title="select a year">
               <option value="2015">2015</option>
               <option value="2016">2016</option>
               <option value="2017">2017</option>
               <option value="2018">2018</option>
               <option value="2019">2019</option>
               <option value="2020">2020</option>
            </select>
         </td>
      </tr>
      <td>&nbsp;</td>
      <tr>
         <td>CVV:</td>
         <td><input type="text" name="CVV" class="input-block-level" placeholder="CVV" /></td>
      </tr>
      <tr>
         <td><button class="btn btn-large btn-primary" type="submit" name="submit">Submit Payment</button></td>
         <td>&nbsp;</td>
         <td width="129"><button class="btn btn-large btn-primary" type="submit" formaction="deliveryDetails.html">Review Details</button></td>
      </tr>
   </table>
</form>

我对如何执行此操作的唯一知识使用以下代码:

<?php
if(isset($_POST['submit']))
{
securePayPost(creditcard, ExpYear, CVV);
} 

但问题是,它不知道什么是信用卡,ExpYearCVV。我做我想做的最好的方式是什么?

简而言之,我希望信用卡号,到期日和cvv被困在表单提交上,然后作为变量securePayPost输入php函数$cardnumber$expiry$cvv

3 个答案:

答案 0 :(得分:4)

好吧,只需将这些值传递给函数 -

    <?php
    if(isset($_POST['submit']))
    {
    //get values from form
    $creditcard = $_POST['creditcard'];
    $ExpYear = $_POST['ExpYear'];
    $CVV = $_POST['CVV'];

    //pass to the function
    securePayPost($creditcard, $ExpYear, $CVV);
    } 

答案 1 :(得分:0)

不需要为post值声明变量只需执行以下操作,您将获得相同的结果和更少的代码

<?php
if(isset($_POST['submit']))
{
securePayPost($_POST['creditcard'], $_POST['ExpYear'], $_POST['CVV']);
} 

答案 2 :(得分:0)

您的表单使用方法POST,因此您可以在$ _POST数组中检索值。 所以你可以做这样的事情:

<?php
if(isset($_POST["submit"])
{
      if(isset($_POST["cardname"])) {$cardname=$_POST["cardname"];}
      if(isset($_POST["creditcard"])) {$cardnumber=$_POST["creditcard"];}
      if(isset($_POST["cardname"])) {$ExpMon=$_POST["ExpMon"];}
      if(isset($_POST["cardname"])) {$ExpYear=$_POST["ExpYear"];}
      if(isset($_POST["CVV"]))  {$CVV=$_POST["CVV"];}

}

然后您可以根据需要使用这些变量。 请记住,您必须传递给函数securePayPost()$ ExpYear和$ ExpMon。否则你必须在$ expiry中连接$ ExpYear和$ ExpMon,只需这样做:

$expiry=$ExpYear.$ExpMon;

您知道前两个字符是到期年,下一个是到期月。

否则,您不需要为$ _POST数组声明变量。 您也可以直接从$ _POST []传递给您的函数:

securePayPost($_POST['creditcard'], $_POST['ExpYear'], $_POST['CVV']);

但请记住,您还需要传递$ ExpMon或在您的表单中无用。