Jquery Ajax既没有将数据传递给PHP也没有返回成功的东西()

时间:2017-03-30 15:57:17

标签: php jquery ajax post

我正在尝试使用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。我在这里检查了类似问题的其他回复,但没有一个与我的代码有任何重大差异。所以不知道错误是什么..

CI settings

updated Screen shots of code both files

3 个答案:

答案 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;
?>