簡體   English   中英

使用 PHP 調用 Javascript 函數

[英]Calling Javascript Function With PHP

我正在嘗試使用 PHP 調用 javascript 函數。

Javascript函數如下:

<script type="text/javascript">
function printDiv(divName)
{
    var printContents = document.getElementById(divName).innerHTML;
    var originalContents = document.body.innerHTML;
    document.body.innerHTML = printContents;
    window.print();
    document.body.innerHTML = originalContents;
}
</script>

我使用此代碼使用 PHP 運行函數:

if (array_key_exists('ykpost', $_POST)) {
    // do something with php
    $printyk = '<script type="text/javascript">printDiv("PrintableArea");</script>';
    echo $printyk;
}

打印內容如下:

<div id="printableArea" class="printDiv">
    //some content with created by php
</div>

我用這個表格發帖:

<form id="ykbarcodepost" method="post">
    <input type="submit" class="btn" value="Print Barcode" name="ykpost" />
</form>

但它不會打開打印窗口。 如果我將$printyk變量更改為“Hello”,它會寫入 Hello。 所以想到了javascript的問題。 但是當我嘗試使用另一個按鈕時

<input type="button" class="btn" onclick="printDiv('printableArea')" value="Print Barcode" />

它顯示printDiv。 有什么我看不到的嗎?

根據您在此代碼中提供的內容,您的 HTML 中有錯誤:

...
// do something with php
$printyk = '<script type="text/javascript">printDiv("PrintableArea")
...

PrintableArea應該是printableArea

這里要提到的一件事是在混合 if 語句和 HTML 以提高可讀性時始終使用替代 if 語法

這是我在本地機器上復制的有效 PHP 代碼:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>PRINCE Is Not a Cheat-sheet for Emacs</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="generator" content="Prince Backend" />
<meta name="date" content="2020-01-25T19:09:08" />
<meta name="description" content="A mind map for the Emacs commands." />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
  <div id="printableArea" class="printDiv">
    //some content with created by php
    <div>ASDAD</div>
  </div>
  <form id="ykbarcodepost" method="post">
  <input type="submit" class="btn" value="Print Barcode" name="ykpost" />
</form>
<script type="text/javascript">
  function printDiv(divName)
  {
      var printContents = document.getElementById(`${divName}`).innerHTML;
      var originalContents = document.body.innerHTML;
      document.body.innerHTML = printContents;
      window.print();
      document.body.innerHTML = originalContents;
  }

  <?php if (array_key_exists('ykpost', $_POST)) : ?>
    // do something with php
    printDiv("printableArea");
  <?php endif ?>
</script>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM