编辑:在此结尾处查看解决方案
我是php,ajax等所有新手:)
我的问题是:有没有办法让php文件返回一个值?
我有:
我要做的是:
当点击一个链接(例如,第一个类别)时,我想通过jquery的ajax(),loadImages.php调用通过POST传递的类别(cat0,cat1,cat2,...)
我想从这个php文件中返回值,例如:<img src="image/image1.jpg" />
,所以通过javascript,我可以检索这个字符串。当我将return
函数放入变量而不是字符串XMLHttpRequest
时,我的php文件中仅使用ajax()
会返回<img>
。
有办法吗?或者更好的方式,因为我不完全理解ajax。
谢谢!抱歉我的语法不好。
下面是我正在尝试做的更精确的地图。
JavaScript的:
var test = $.ajax({
type: "POST",
url: "loadImages12.php",
data: "category=0",
complete: function() {
alert("COMPLETE");
},
error: function (){
alert("NOT LOADED");
}
});
PHP(loadImages.php)
function createThumb() {
if(isset($_POST['category'])) {
$imageQuery = mysql_query("SELECT * FROM t_pictures WHERE p_category = 0");
$thumbHtml = '';
while ($tempImageQueryFetch = mysql_fetch_assoc($imageQuery)){
$thumbHtml .= '<a href="#" class="thumbnail"><img src="ressources/images/' . $tempImageQueryFetch["p_fileName"] . 'Small.jpg" /></a>';
}
return $thumbHtml;
}
else {
$noCategory = "NO CATEGORY TEST";
return $noCategory ;
}
}
createThumb();
解决
Php文件
function createThumb(){
// Mysql请求
$ someVar = //请求结果
返回$ someVar
}
echo createThumb()
Javascript
$(“#someDiv”)。load(“loadImages.php”,{category:0});
答案 0 :(得分:5)
对PHP的AJAX请求与网站的正常请求完全相同。您从example.com/foo/bar
请求数据,作为回报,您收到文字。 PHP的return
语句与返回给客户端的内容无关。只有您echo
或其他输出的内容才会被客户收到。对于普通页面和AJAX请求,情况也是如此。
因此,要将<img src="image/image1.jpg" />
“返回”到您的Javascript AJAX调用,echo
PHP中的该字符串。
答案 1 :(得分:2)
如果你想使用你已经拥有的php文件(loadImages.php),只需回显函数的结果:
echo createThumb();
答案 2 :(得分:0)
只需让php脚本返回缩略图的路径。
然后在js中执行类似的操作
somediv.html('<a href="#" class="thumbnail"><img src="">');
并且只使用php文件返回的路径为img src ..