有没有办法在javascript onClick
中包含一些php文件?
等
if(isset(something)) ?
include "file.php";
请帮忙!
答案 0 :(得分:5)
没有。这是PHP语法。 PHP在服务器上完全执行,结果将发送回客户端。点击是在客户端。 Javascript处理这些。你不能把两者混在一起。
但是,您可以使用AJAX向服务器发出文件请求,并使用JS显示其内容。 jQuery有一个名为.ajax()
的简单方法,用于此
$.ajax({
url: 'file.php',
success: function(data) {
$('#result').html(data);
alert('Load was performed.');
}
});
此方法将加载file.php
的内容,并在ID为result
的元素中显示。
另一种选择是提交表格。您将文件的名称放在隐藏的表单字段中并单击,然后提交表单。 PHP获取该信息,您从$_GET[]
或$_POST[]
读取文件的名称,确保它有效(不希望某人能够修改您的HTML并在您的服务器上包含任何文件)然后包含它并再次呈现页面。
答案 1 :(得分:1)
您可以简单地使用jQuery的load
函数:
$("#elem").click(function()
{
$("#placeToLoad").load("http://path/to/file");
}
@sachleen他的方式与此相同,只有load
只抓取文件并将其放在给定的位置,而不是必须处理成功函数等。如果load
没有成功,它什么都不做。
答案 2 :(得分:0)
您不能包含php文件,因为它是服务器端代码,无法在客户端执行。
但你可以实际做的是使用ajax来调用file.php并执行其内容,而不是将结果附加到你的文档中。
答案 3 :(得分:0)
当您使用jQuery load()方法向文件发出请求时,它会像通过浏览器发出的任何常规请求一样发送数据。它不知道任何现有的PHP变量,除非您将其与ajax请求一起作为数据传递。
function sendAJAX(){
$('#container').load(
"stuff.php", // url
{ // json object of data to pass to the page
stuff: "all your stuff goes in here...",
moreStuff: "even more stuff"
});
console.log('sendAJAX');
};