我正在尝试使用Ajax将jquery变量传递给PHP但接收php文件返回错误“Undefined index”代码为:
<div class="img">
<a href="ss.php">
<img id="theme_bg" src="images/themes/theme1.jpg">
</a></div>
$(document).ready(function($){
$('.img').on('click','img',function(){
var imgsrc = $(this).attr('src');
alert(imgsrc); //this is returning the img src correctly
$.ajax({
type: "POST",
url: 'ss.php',
dataType: 'json',
data: {imgpath:imgsrc },
success: function(response) {
content.html(response); // i tried alert here but it shows nothing
}
});
});});
接收PHP文件代码是:
<?php
$imagepath = $_POST['imgpath'];
echo $imagepath;
?>
我用GET尝试了但是同样的错误..我之前没有使用过Ajax。我在这里检查了类似问题的其他回复,但没有一个与我的代码有任何重大差异。所以不知道错误是什么..
答案 0 :(得分:1)
您将dataType设置为json
所以PHP应该是php char
更好的解决方案是dataType:text而不是JSON
请注意,在$ .ajax中,dataType用于响应而非请求
检查$ .ajax手册http://api.jquery.com/jquery.ajax/
答案 1 :(得分:0)
试试这个。将此文件添加到document.ready function
$(".img").click(function() { $.ajax({ type: "POST", url: "ss.php", data: {imgpath:imgsrc}, dataType: "text", cache:false, success: function(data){ alert(data); } });// you have missed this bracket return false; });
答案 2 :(得分:0)
为什么你在锚中写ss.php
你不需要这就是为什么它会在点击和获取错误未定义索引时重定向ss.php
。
你的HTML代码应该是这样的:
<form id="myForm" method="post" action="ss.php">
<div class="img">
<img id="theme_bg" src="images/themes/theme1.jpg">
<input name="imgpath" id="imgpath" type="hidden"/>
</div>
</form>
Jquery代码:
$(document).ready(function ($) {
$('.img').on('click', 'img', function () {
var imgsrc = $(this).attr('src');
$("#imgpath").val(imgsrc); //this is returning the img src correctly
$("#myForm").submit();
});
});
ss.php
<?php
$imagepath = $_POST['imgpath'];
echo $imagepath;
?>