如何提交'提交'在php中按钮多个动作?

时间:2016-02-02 21:16:25

标签: php forms function button form-submit

我有一个提交表单,我希望它做两件事: 1)将值存储在数据库中 2)将$ _POST值写入pdf

我有一个用于数据库写入的脚本,它可以自行运行。我有另一个写入PDF的脚本,它本身也可以正常工作。

但是,当我尝试在另一个函数的末尾调用一个函数时,提交操作只执行其中一个操作。我该如何解决这个问题。我希望我的按钮执行store.php和makepdf.php

目前,我只能在表单的操作标记中指定一个表单。

编辑:我在这里添加脚本。

这是我的store.db文件(连接长度限制):

<?php

   $dbhost = 'localhost';
   $dbuser = '';
   $dbpass = '';

// GET ALL THE VARIABLES FROM THE FORM

     $FirstName= $_POST['firstname']?$_POST['firstname']:'0';
     $LastName= $_POST['lastname']?$_POST['lastname']:'0'; 
     $Email= $_POST['email']?$_POST['email']:'0'; 
     $idn= $_POST['idn']; 

   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql1 = "INSERT INTO borrower(FirstName,LastName,Email,ssn) VALUES('".$FirstName."','".$LastName."','".$Email."','".$idn.");
   mysql_select_db('db');
   $retval1 = mysql_query( $sql1, $conn );

   }

//Test successs 
   //echo "Successful"  

?>

这是我的makepdf.php:

<?php 

function pdfMaker() {
include('fpdf/fpdf.php'); 
include('fpdi/fpdi.php'); 

$FirstName;
$LastName;
$Email;
$IDNumber;



// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
$pdf->AddPage(); 
// set the sourcefile 
$pdf->setSourceFile('rcpp1.pdf'); 
// import page 1 
$tplIdx = $pdf->importPage(1); 
// use the imported page as the template 
$pdf->useTemplate($tplIdx, 0, 0); 

// now write some text above the imported page 
$pdf->SetFont('Times', '', 9); 
$pdf->SetTextColor(0,0,153); 

// Top Left stuff
$pdf->SetXY(9, 38); 
$pdf->Write(0, $Firstaname.$LastName.$Email.$IDNumber); 

$pdf->Output(($Firsname."_".$Lastname.'file.pdf'), 'D'); 

}

pdfMaker();

?>

这是我的表格:

<form class="form-horizontal" method="post" action="">
<fieldset>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="firstname">First Name</label>  
  <div class="col-md-4">
  <input id="firstname" name="firstname" type="text" placeholder="" class="form-control input-md">

  </div>
</div>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="lastname">Last</label>  
  <div class="col-md-4">
  <input id="lastname" name="lastname" type="text" placeholder="" class="form-control input-md">

  </div>
</div>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="email">Email</label>  
  <div class="col-md-4">
  <input id="email" name="email" type="text" placeholder="" class="form-control input-md">

  </div>
</div>

<!-- Text input-->
<div class="form-group">
  <label class="col-md-4 control-label" for="idn">ID#</label>  
  <div class="col-md-4">
  <input id="idn" name="idn" type="text" placeholder="" class="form-control input-md">

  </div>
</div>

</fieldset>
</form>

同样,当我将php脚本添加到表单中的action标记时,每个函数都单独使用。但是如果尝试将一个函数添加到另一个脚本或从另一个脚本调用它,它只执行一个并停止。

2 个答案:

答案 0 :(得分:0)

你指的是<form action="/uri" >吗?

<form action="/path/to/do_two_things.php" >怎么样?

<form action="/path/my_form_handler.php">
    <input type="submit" name="dowhat" value="Do action A" />
    <input type="submit" name="dowhat" value="Do action B" />
</form>

<?php
if ($_POST['dowhat'] == "Do action A") {
    // something
    // even more than one thing
} else {
    // something else
    // etc
}
?>

答案 1 :(得分:-1)

只需在PHP中包含另一个中的一个脚本:

store.php脚本中尝试此操作:

include("makepdf.php");

仅供参考,你也可以从另一个脚本中调用一个脚本,但你需要传递post params和文件名,如下所示:

file_get_contents("makepdf.php?param1=".$_POST['param1']."&param2=".$_POST['param2']);