如何从不同的 php 文件调用 javascript 函数
How to call a javascript function from a different php file
我想从 php 文件 (xyz.php) 调用 javascript 函数(包含在 html 文件中:index.html)。
因此,当我单击 xyz.php 页面内的 link 时,它将从 index.html 调用 javascript 函数。
类似于:
echo '<a href="#" onclick="index.html.someFunction(e)"></a>';
它需要以某种方式解决函数所在的 index.html。
编辑:
Index.html
<html>
<head>
</head>
<body>
<button id="search_button" type="submit" value= "Search" onclick= "return getOutput()">Search</button>
<div id="output" style="width:395px; height:150px; overflow: auto; background = #969696" > </div>
</body>
<script>
//THIS DISPLAYS THE CONTENT OF MY PHP PAGE INSIDE THE DIV FIELD
function getOutput() {
getRequest(
"xyz.php?eingabe=123&eingabe2=File.csv", // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
function getOutput(link) {
getRequest(
link, // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
// handles drawing an error message
function drawError() {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = 'Bummer: there was an error!';
}
// handles the response, adds the html
function drawOutput(responseText) {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = responseText;
}
// helper function for cross-browser request object
function getRequest(url, success, error) {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function () {};
if (typeof error!= 'function') error = function () {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
</script>
</html>
XYZ.PHP
<html>
<?php
$vergleich = $_GET["eingabe"];
$datei = $_GET["eingabe2"];
$temp2a = array("0.1.2.4", "0.1.2.3", "0.1.2.2");
for ($i = 0; $i < count($temp2a); $i++) {
$URL = "xyz.php?eingabe=',temp2a[$i],'&eingabe2=',$datei,";
echo '<a href=',temp2a[$i],' onClick= "index.html.getOutput($URL)"></a>';
}
?>
<body>
</body>
</html>
您可以将 Javascript 代码保存在外部 js 文件中,并通过 script
标签将其包含在您的 html/php 文件中;
<script src="path/to/your/js/file.js"></script>
编辑: 好的,首先,您需要完全删除重载的 getOutput(link) 函数。这将使您对 xyz.php 文件的调用指向实际的 php 文件,否则它会指向一个名为 undefined 的文件(因为您没有提供 link 参数)。然后,您的 xyz.php 文件中的第 16,17 行有一个拼写错误:
$URL = "xyz.php?eingabe=',temp2a[$i],'&eingabe2=',$datei,";
echo '<a href=',temp2a[$i],' onClick= "index.html.getOutput($URL)"></a>';
应该改成这样;
// Note the missing $ sign from your temp2a variables and the missing quotes from the anchor tag
$URL = "xyz.php?eingabe=',$temp2a[$i],'&eingabe2=',$datei,";
echo '<a href="',$temp2a[$i],'" onClick= "getOutput($URL)"></a>';</a>';
EDIT2: 在您的文件中发现了其他一些小错误;
index.html:
<html>
<head>
</head>
<body>
<button id="search_button" type="submit" value= "Search" onclick= "return getOutput()">Search</button>
<div id="wagoartikelnr2" style="width:395px; height:150px; overflow: auto; background = #969696" > </div>
<script src="script.js"></script>
</body>
</html>
xyz.php:
<?php
$vergleich = $_GET["eingabe"];
$datei = $_GET["eingabe2"];
$temp2a = array("0.1.2.4", "0.1.2.3", "0.1.2.2");
for ($i = 0; $i < count($temp2a); $i++) {
$URL = "xyz.php?eingabe=".$temp2a[$i]."&eingabe2=".$datei;
echo '<p><a href="'.$temp2a[$i].'" onClick="getOutput("'.$URL.'")">link</a></p>';
}
?>
script.js:
function getOutput(url) {
url = url || "xyz.php?eingabe=123&eingabe2=File.csv";
getRequest(
url, // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
// handles drawing an error message
function drawError() {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = 'Bummer: there was an error!';
}
// handles the response, adds the html
function drawOutput(responseText) {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = responseText;
}
// helper function for cross-browser request object
function getRequest(url, success, error) {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function () {};
if (typeof error!= 'function') error = function () {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
使用此代码
<script type="text/javascript" src="path_to_ur_filename.js"></script>
我想从 php 文件 (xyz.php) 调用 javascript 函数(包含在 html 文件中:index.html)。 因此,当我单击 xyz.php 页面内的 link 时,它将从 index.html 调用 javascript 函数。
类似于:
echo '<a href="#" onclick="index.html.someFunction(e)"></a>';
它需要以某种方式解决函数所在的 index.html。
编辑:
Index.html
<html>
<head>
</head>
<body>
<button id="search_button" type="submit" value= "Search" onclick= "return getOutput()">Search</button>
<div id="output" style="width:395px; height:150px; overflow: auto; background = #969696" > </div>
</body>
<script>
//THIS DISPLAYS THE CONTENT OF MY PHP PAGE INSIDE THE DIV FIELD
function getOutput() {
getRequest(
"xyz.php?eingabe=123&eingabe2=File.csv", // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
function getOutput(link) {
getRequest(
link, // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
// handles drawing an error message
function drawError() {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = 'Bummer: there was an error!';
}
// handles the response, adds the html
function drawOutput(responseText) {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = responseText;
}
// helper function for cross-browser request object
function getRequest(url, success, error) {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function () {};
if (typeof error!= 'function') error = function () {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
</script>
</html>
XYZ.PHP
<html>
<?php
$vergleich = $_GET["eingabe"];
$datei = $_GET["eingabe2"];
$temp2a = array("0.1.2.4", "0.1.2.3", "0.1.2.2");
for ($i = 0; $i < count($temp2a); $i++) {
$URL = "xyz.php?eingabe=',temp2a[$i],'&eingabe2=',$datei,";
echo '<a href=',temp2a[$i],' onClick= "index.html.getOutput($URL)"></a>';
}
?>
<body>
</body>
</html>
您可以将 Javascript 代码保存在外部 js 文件中,并通过 script
标签将其包含在您的 html/php 文件中;
<script src="path/to/your/js/file.js"></script>
编辑: 好的,首先,您需要完全删除重载的 getOutput(link) 函数。这将使您对 xyz.php 文件的调用指向实际的 php 文件,否则它会指向一个名为 undefined 的文件(因为您没有提供 link 参数)。然后,您的 xyz.php 文件中的第 16,17 行有一个拼写错误:
$URL = "xyz.php?eingabe=',temp2a[$i],'&eingabe2=',$datei,";
echo '<a href=',temp2a[$i],' onClick= "index.html.getOutput($URL)"></a>';
应该改成这样;
// Note the missing $ sign from your temp2a variables and the missing quotes from the anchor tag
$URL = "xyz.php?eingabe=',$temp2a[$i],'&eingabe2=',$datei,";
echo '<a href="',$temp2a[$i],'" onClick= "getOutput($URL)"></a>';</a>';
EDIT2: 在您的文件中发现了其他一些小错误;
index.html:
<html>
<head>
</head>
<body>
<button id="search_button" type="submit" value= "Search" onclick= "return getOutput()">Search</button>
<div id="wagoartikelnr2" style="width:395px; height:150px; overflow: auto; background = #969696" > </div>
<script src="script.js"></script>
</body>
</html>
xyz.php:
<?php
$vergleich = $_GET["eingabe"];
$datei = $_GET["eingabe2"];
$temp2a = array("0.1.2.4", "0.1.2.3", "0.1.2.2");
for ($i = 0; $i < count($temp2a); $i++) {
$URL = "xyz.php?eingabe=".$temp2a[$i]."&eingabe2=".$datei;
echo '<p><a href="'.$temp2a[$i].'" onClick="getOutput("'.$URL.'")">link</a></p>';
}
?>
script.js:
function getOutput(url) {
url = url || "xyz.php?eingabe=123&eingabe2=File.csv";
getRequest(
url, // URL for the PHP file
drawOutput, // handle successful request
drawError // handle error
);
return false;
}
// handles drawing an error message
function drawError() {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = 'Bummer: there was an error!';
}
// handles the response, adds the html
function drawOutput(responseText) {
var container = document.getElementById('wagoartikelnr2');
container.innerHTML = responseText;
}
// helper function for cross-browser request object
function getRequest(url, success, error) {
var req = false;
try{
// most browsers
req = new XMLHttpRequest();
} catch (e){
// IE
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
// try an older version
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
return false;
}
}
}
if (!req) return false;
if (typeof success != 'function') success = function () {};
if (typeof error!= 'function') error = function () {};
req.onreadystatechange = function(){
if(req.readyState == 4) {
return req.status === 200 ?
success(req.responseText) : error(req.status);
}
}
req.open("GET", url, true);
req.send(null);
return req;
}
使用此代码
<script type="text/javascript" src="path_to_ur_filename.js"></script>