javascript - 从单独的 php 脚本调用 javascript 函数?
问题描述
我在“generate.php”脚本中编写了 javascript 函数,并且在单独的脚本中有“call.php”。如何在“call.php”脚本中添加一个按钮来触发“generate.php”中的函数?
“生成.php”:javascript;“保存”调用的函数
<?php
include_once("connection.php");
$chart_data = '';
$db = new dbObj();
$connString = $db->getConnstring();
$id=$_GET['id'];
$query = $connString->prepare("SELECT ID FROM Datas WHERE ID=?");
$query->bind_param('s',$id);
$query->execute();
$result=$query->get_result();
while($row = mysqli_fetch_array($result))
{
$chart_data .= "{ ID:'".$row["ID"]."'},";
}
echo $chart_data;
$chart_data = substr($chart_data, 0);
?>
<!DOCTYPE html>
<html>
<head>
<title> PHP & Mysql</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/html2canvas@1.0.0-rc.1/dist/html2canvas.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.5.3/jspdf.min.js"></script>
</head>
<body>
<br /><br />
<div id="chart"></div>
<button id="save">Download</button>
<div class="container" style="width:900px;">
<h2 align="center">MySQL</h2>
<h3 align="center">Data</h3>
<br /><br />
<div id="bar-chart" data-colors="#29abe2,#ffc142,#1ab394, #FF0000, #FFFF00" ></div>
</body>
</html>
<script>
$("#save").click(function() {
html2canvas(document.getElementById('bar-chart')).then(canvas => {
var w = document.getElementById("bar-chart").offsetWidth;
var h = document.getElementById("bar-chart").offsetHeight;
var img = canvas.toDataURL("image/jpeg", 1);
var doc = new jsPDF('L', 'pt', [w, h]);
doc.addImage(img, 'JPEG', 10, 10, w, h);
doc.save('xkey.pdf');
}).catch(function(e) {
console.log(e.message);
});
})
</script>
“调用.php”;
<?php
include_once("generate.php");
$connect = mysqli_connect("localhost", "root", "", "db01");
$output = '';
$sql = "SELECT * FROM Datas WHERE ID LIKE '%" .$_POST["search"]."%'";
$result = mysqli_query($connect, $sql);
if(mysqli_num_rows($result) > 0)
{
$output .= '<h4 align = "center">Search Result</h4>';
$output .= '<div class="table-responsive">
<table class = "table table bordered">
<tr>
<th>ID</th>
<th>Generate</th>
</tr>';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["ID"].'</td>
<td><a href="generate.php?id='.$row["ID"].'" target="_blank"><button id="gen" name="generate" class="btn btn-primary"><i class="fa fa"" aria-hidden="true"></i>Generate</button></a></td>
</tr>
';
}
echo $output;
}
else
{
echo "Data not found";
}
?>
解决方案
您的 pos-PHP 代码必须位于同一文档中。所以要么通过<script src="generate.php">
或通过<? require 'generate.php'; ?>
推荐阅读
- selenium - 为什么 base64 屏幕截图在可发送电子邮件的范围报告中显示为空白?
- python - Django 的问题:没有名为“myapp”的模块
- vue.js - 刷新 v-for 循环
- amazon-web-services - EKS 中的 Nginx 入口控制器无法将流量路由到 pod
- php - Laravel hasOneThrough(); 中间表自定义列值
- python - 无法在 Django 中使用自定义表单更新自定义模型
- java - 如果陈述不应该评估为真?
- c++ - 使用指针打印 argv 和 environ
- c++ - OpenGl,glUseProgram() 返回 GL_INVALID_VALUE 即使着色器的 ID 是正确的
- python-3.x - 如何循环输入(看我的代码,你就会明白)