2016-02-02 1 views
-3

У меня есть форма, что представлять я хочу, чтобы сделать две вещи: значения 1) хранить в базе данных 2) написать $ _POST значения в формате PDFКак подать кнопку «отправить» более одного действия в php?

У меня есть сценарий для базы данных записи, и это работает самостоятельно. У меня есть другой сценарий для записи в PDF, и он тоже отлично работает сам по себе.

Однако, когда я пытаюсь вызвать одну функцию в конце другого, действие submit выполняет только одно из действий. Как я могу это решить. Я хотел бы, чтобы моя кнопка выполняла как store.php, так и makepdf.php

В настоящее время я могу указать только одну форму в теге действия моей формы.

EDIT: Я добавляю скрипты здесь.

Вот мой файл 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 в тег действия в форме, каждая функция отлично сортируется. Но если попытаться добавить одну функцию в другой скрипт или вызвать ее из другой, она только выполняет одну и останавливается.

+1

Не будучи в состоянии видеть ваш код, мы можем только догадываться .... которые мы не делаем очень хорошо. –

+0

Shoul Включаю все три скрипта? – Tendi

+0

формы могут подавать только на один URL-адрес за раз. почему вы хотите, чтобы кнопка «Отправить» выполняла две разные вещи? разве дело не в том, какова форма представления? тривиально, чтобы этот скрипт был ' ' –

ответ

-1

Просто включают один сценарий в другом в PHP:

Попробуйте это в store.php сценария:

include("makepdf.php"); 

FYI, вы можете также позвонить один сценарий от другого, но вам нужно будет пройти почтовые PARAMS вместе с именем файла, как так:

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

Почему downvote? – cronoklee

+0

Я не знаю, кто вас ниспровергал, я не думаю, что это был я. Я обновил свои сценарии. – Tendi

+0

Не беспокойтесь об этом. Вы попробовали включить? – cronoklee

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 
} 
?> 
+0

Я обновил свои сценарии. – Tendi