iT邦幫忙

0

使用tcpdf產生pdf,但php $_POST 值跑不出來

  • 分享至 

  • xImage

各位大大好:

想請問使用tcpdf產生pdf,但php $_POST 值跑不出來,像$company=$_POST['check'];
就無法產生出來,想請問是甚麼原因? 謝謝


<?php 

function fetch_customer_data1()
{

 //$html='<link rel=stylesheet type="text/css" href="./atm.css"/><body><table>.'$company.'</table>';
   $hostdb='127.0.0.1';
    $namedb='pr2019';
    $userdb='root';
    $passdb='nsysuee1!';
    try{
     $conn=new PDO("mysql:host=$hostdb;dbname=$namedb",$userdb,$passdb);
     
      $conn->exec("SET CHARACTER SET utf8");
      $uname=$_POST['uname'];
      $VIDStrlast=$_POST['virtualnum'];
      $email=$_POST['email'];
      $paypapernum=$_POST['paypapernum'];
      $TotalFee=$_POST['amount'];
      $company=$_POST['check'];       
     $bankcom="0"."34915";
     $a=6;   
   
   $Bcod5b=$bankcom.$Bcod2b.$Ch1bb;

 $html='<link rel=stylesheet type="text/css" href="./atm.css"/><body><table><tr><td>'.$company.'</td></tr></table></body>';
     return $html;
   $conn=null;
       
       }
   catch(PDOEXception $e){
                   echo $e->getMessage();
	
                   }

}


?>

tcpdf

<?php

if(isset($_POST["action"]))
{

   require_once('tcpdf/tcpdf.php');  
      // create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 002');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// set some language-dependent strings (optional)
/*if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
        require_once(dirname(__FILE__).'/lang/eng.php');
            $pdf->setLanguageArray($l);
}*/

// ---------------------------------------------------------

// set font
$pdf->SetFont('msungstdlight', '', 20);

// add a page
$pdf->AddPage();

// set some text to print

$content = '';  
$content .= fetch_customer_data1();
 
// print a block of text using Write()
$pdf->writeHTMLCell(0, 0, '', '', $content, 0, 1, 0, true, '', true);;

// ---------------------------------------------------------

//Close and output PDF document
ob_end_clean();
$pdf->Output('test1020.pdf', 'I'); 
 }


?>

看更多先前的討論...收起先前的討論...
dragonH iT邦超人 5 級 ‧ 2019-06-10 14:52:31 檢舉
不懂跑不出來是什麼意思

是指 php 拿不到 post 的值

還是說 tcpdf 印不出來 post 的值

不管哪個

你先開 console 檢查

確定往 php 送的資料欄位等 都正確無誤

然後 php 那也把 post 的值 echo 出來檢查
slime iT邦大師 1 級 ‧ 2019-06-10 14:53:40 檢舉
tcpdf 檔有 if(isset($_POST["action"]))
是說如果有 action 才執行底下的內容, 所以要先確定:

1. tcpdf 檔是由哪邊呼叫啟動?
2. 呼叫啟動是否有使用 POST 方式送出 action ?
3. 相對路徑 tcpdf/tcpdf.php 是否有檔案? 是否有執行權限?
mayyola iT邦研究生 1 級 ‧ 2019-06-10 15:27:40 檢舉
是可以PO html語法 跟php的變數,剛剛把$company=$_POST['check']; 改為$company=$_SESSION['check']; PDF就可以列印出來..但不知道後面還有沒有不能用的..
WQ iT邦新手 2 級 ‧ 2019-06-10 15:48:05 檢舉
在同一個檔案嗎?
dragonH iT邦超人 5 級 ‧ 2019-06-10 15:55:08 檢舉
改成這樣沒報錯的話

除非你真的有 $_SESSION['check']

不然先猜你沒有把 php 錯誤訊息打開

照著下面這篇把錯誤訊息打開

https://stackoverflow.com/questions/845021/how-can-i-get-useful-error-messages-in-php

應該會很有幫助
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
WQ
iT邦新手 2 級 ‧ 2019-06-10 15:12:46

抱歉,理解問題有誤<----請刪

0

這可能需要先了解你的html中的form的架構才行。
我比較擔心的是,你的check的表單元件是checkbox這一類的input元件。

這一類元件如果沒勾選的情況下。並不會產生

$_POST['check']

這個值出來的。

由於你的問題說的很不清楚。無法知道你所謂的無法產生是什麼。是無法在PDF生成。還是PHP就無值了。這你得PO一下你的HTML情況才行。無值的話你也得先確定你是否有POST或GET過來

mayyola iT邦研究生 1 級 ‧ 2019-06-11 17:21:31 檢舉

其實有勾選,有值而且有post,我想應該在按pdf的按鈕時,有重新整理過,所以post值消失掉,後來我用session就可以了

dragonH iT邦超人 5 級 ‧ 2019-06-11 20:27:34 檢舉

建議你還是要解決這個問題

因為 session 跟 post 的用途差很大

不是說改成這樣沒問題就將就/images/emoticon/emoticon13.gif

0
舜~
iT邦高手 1 級 ‧ 2019-06-11 11:58:47

可能因為沒傳入執導置出錯,那就如果沒傳入職就給預設值(空字串)

把這句

$company=$_POST['check'];

改成

$company=isset($_POST['check'])?$_POST['check']:'';

我要發表回答

立即登入回答