我有一个可以在PHP文件中执行内容的工作AJAX文件。但是,如果php在函数内(PHP文件中有很多php函数),我该如何只调用我想要的函数。
我的AJAX代码:
$(document).ready(function(){
// use ajax, call the PHP
$.ajax({
url: 'postme.php',
success: function(response){
$('.result_Postme').text(response);
}
})
});
postme.php PHP文件中的一个函数:
<?php
function echo()
{
echo 'Text';
}
?>
感谢。
编辑:
@Amadan嗨,我试过你的方法,但似乎没有在html输出。
我的AjAx代码:
$(document).ready(function(){
// use ajax, call the PHP
$.ajax({
url: 'rank.php',
data: {
action: 'echo'
},
success: function(response){
$('.rank_Alibaba').text(response);
}
})
});
PHP文件
switch($_REQUEST['action'])
{
case 'echo':
echo "text";
break;
}
HTML:
<td class="rank_Alibaba"></td>
答案 0 :(得分:0)
您需要在PHP文件中调用该函数:
最后添加一行。
<?php
function yourFunc() {
echo 'Text';
}
yourFunc()
?>
为什么PHP解析器知道你需要从函数中执行代码。
答案 1 :(得分:0)
a)使用MVC框架,例如Laravel或CakePHP。无论您是否想要这些框架,这些框架都非常自以为是,并会强制您采用最佳实践。 :P
b)如果你绝对想要坚持使用普通的PHP,最简单的方法是传递一个参数来选择你的函数,然后在你的PHP文件中对该参数有一个switch
语句来调度这个调用到了正确的地方。例如,在JavaScript中:
...
url: 'postme.php',
data: {
action: 'echo'
},
...
在PHP中:
switch($_REQUEST['action']) {
case 'echo':
echo();
break;
...
}
答案 2 :(得分:0)
你不能通过javascript直接调用php函数。你能做的就像是“调度员”。
$(document).ready(function(){
// use ajax, call the PHP
$.ajax({
url: 'postme.php',
data: { func: "echo" }
success: function(response){
$('.result_Postme').text(response);
}
})
});
并在php中:
<?php
if($_REQUEST["func"] == "echo") {
echo();
} elseif(....) {
}
function echo()
{
echo 'Text';
}
?>
答案 3 :(得分:0)
您必须根据输入查询控制php行为。
将此添加到您的php脚本中,可能正常工作(只是一个示例):
<?php
if(isset($_GET['action']) && $_GET['action']) == 'echo'){
echo();
}else{
// original behaviour
}
function echo()
{
echo 'Text';
}
// whatever function else
?>
将您的javascript更改为:
$(document).ready(function(){
// use ajax, call the PHP
$.ajax({
url: 'postme.php?action=echo',
success: function(response){
$('.result_Postme').text(response);
}
})
});
答案 4 :(得分:0)
您甚至可以像这样使用$_GET
var。
$.ajax({
url: './inc/postme.php?argument=myFunction',
type: 'POST',
data: selected
success: function(response){
$('.result_Postme').text(response);
}
});
并在php方面:
if($_GET['argument'] == 'myFunction'){
//code here
}
答案 5 :(得分:0)
我有3个文件: 1,使用Javascript 2- admin.php的 3-Class.php(我存储我的函数)
在java脚本中我使用AJAX和JSON,并且总是将一个objectEvent(ObjEvn)发送到ADMIN.php:
//Your javaScript code
$(document).on("event", "#idElement", function(){
//Data you want to send to php evaluate
var dt={
ObjEvn:"btn_Login",//This is the controller to ADMIN.php
dataJsToPHP: $("#txt_EmailLogin").val(),
asManyasYouWant: use jQuery to grab values....
};
//Ajax
var request =$.ajax({//http://api.jquery.com/jQuery.ajax/
url: "ADMIN.php",
type: "POST",
data: dt,
dataType: "json"
});
//Ajax Done catch JSON from PHP
request.done(function(dataset){
for (var index in dataset){
dataPHPtoJsJS=dataset[index].dataPHPtoJs;
asManyasYouWantJS=dataset[index].asYouWant;
}
//JavaScript conditions. Here you can control the behaivior of your //html object, based on your PHP response
if(dataPHPtoJsJS){
$( "#idYourHtmlElement" ).removeClass( "class1" )
$( "#idYourHtmlElement" ).addClass( "class2" )
}
});
//Ajax Fail
request.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
}
现在在ADMIN.php中
$ObjEvn=$_POST["ObjEvn"];//Call this before all test
$asManyasYouWant = $_POST["asManyasYouWant "];
if($ObjEvn==="btn_Login"){
$login=$_POST["login"];
$passwd=$_POST["passwd"];
//call your function to test login in class.php
//finally, at the end, return your result to jquery. It could be another jquery code to //be loaded dynamiclly, it could be a html tag, it could be a value... it could be almost //everyting..
$arrToJSON = array(
"dataPHPtoJs"=>"yourData",
"asYouWant"=>"<div class=\".class1\">soemting</div>"
);
return json_encode(array($arrToJSON));
}
elseif($ObjEvn==="btn_NewUser"){
//retrieve anoter values
//and call your functions to create new user
//finally, at the end, return your result to jquery. It could be another jquery code to //be loaded dynamiclly, it could be a html tag, it could be a value... it could be almost //everyting..
$arrToJSON = array(
"dataPHPtoJs"=>"yourData",
"asYouWant"=>"<div class=\".class1\">soemting</div>"
);
return json_encode(array($arrToJSON));
}