[英]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.