我不确定这是否是最好的方法,但是如何使用包含的文件进行AJAX调用?让我举一个简单的例子。
我有主要的index.php文件,其中包含以下内容,我想要访问从魔法发生的包含文件返回的所有数据。数据实际上是数组类型。
<?php
require_once('magic.php');
?>
<html>
<body>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<input type="text" name="variable" id="variable" />
<input type="submit" value="Do magic" name="submit" />
</form>
<?php
echo "<pre>";
print_r($data);
echo "</pre>";
?>
</body>
</html>
&#34; magic.php&#34;文件,所有的魔法发生。
<?php
$variable = $_POST['variable'];
function doMagic($variable) {
# do some magic with passed variable ...
# and return data
return $data;
}
$data = doMagic($variable);
# now return $data variable so main file can use it
return $data;
?>
我想要做的是用AJAX调用这个函数doMagic(),但是所有逻辑都已经包含在全局空间中,并且可以将$ data返回到模态或弹出窗口。
什么是最佳方法,因为我已经将变量传递给包含文件?
答案 0 :(得分:1)
使用ajax
,如下所示
$('form').submit(function(){
$.ajax({url: "magic.php",
data: {variable : $'#variable').val()},
success:function(data){console.log(data);});
});
并在magic.php
中使用json_encode
<?php
$variable = $_POST['variable'];
function doMagic($variable) {
# do some magic with passed variable ...
# and return data
return $data;
}
$data = doMagic($variable);
# now return $data variable so main file can use it
return json_encode($data);
?>
答案 1 :(得分:1)
由于您有jQuery
作为标记...
你可以这样做:
在index.php中:
<input type="text" id="variable">
<div id="#myButton"></div>
<div id="#response"></div>
然后有一个Javascript文件(或包含在index.php中):
$('#myButton').click(function(){
var myVariable = $('#variable').val();
$.post( "magic.php",{variable: myVariable}, function(data) {
$( "#response" ).html( data );
});
});
这基本上意味着,当您点击ID为myButton
的项时,它会抓住输入内部的值variable
,通过jQuery.post()将该POST发送到您的magic.php
文件,然后返回数据。然后,它用id response
替换div的html及其返回的数据。
请务必加入jQuery library