在ajax post mysql上形成序列化非法字符串偏移量''

时间:2017-11-20 08:02:51

标签: php jquery mysql json ajax

我正在尝试通过表单序列化方法插入数据。这是我的ajax。

if (isset($_POST["AddInventory"])) {

    $AddInventory = $_POST["AddInventory"];

    $sql = "insert into `tblinventory` ( Bill_No, SKU_No, Purchase_Price, Discount_Price, Discount, Qty, , Deal, Created_Date, Modified_Date, IsDeleted)values ('" . $AddInventory["Bill_No"] . "','1','" . $AddInventory["Purchase_Price"] . "' ,'" . $AddInventory["Discount_Price"] . "','" . $AddInventory["Discount"] . "','" . $AddInventory["Qty"] . "',,'" . $AddInventory["Deal"] . "',now() ,now() ,'0' )";

    if (mysqli_query($conn, $sql)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "" . mysqli_error($conn);
    }
    exit();
}

警告我收到了this等发送数据。

这是我的DB文件,我根据建议进行了更改

var_dump

修改

现在我要

  

非法字符串偏移'Bill_No'

错误;

我在输出中没有响应,在控制台中也没有显示脚本错误

我试图搜索并实现我认为相关的代码, 仍然存在问题,任何帮助都会很明显

修改2

我测试{{1}},我得到了这样的回复

enter image description here

3 个答案:

答案 0 :(得分:2)

您将data中的整个AddInventory作为URL编码格式传递,使用parse_str()您可以将其作为数组获取。所以在PHP aceess中就像这样

  if(isset($_POST["AddInventory"])){

   parse_str(urldecode($_POST["AddInventory"]),$AddInventory);


      $sql = "insert into `tblinventory` ( Bill_No)values ('".$AddInventory["Bill_No"]."' )";

        if (mysqli_query($conn, $sql)) {
           echo "New record created successfully";
        } 
     }

重要提示:您的代码易受SQL注入攻击,准备语句(使用PDO)

答案 1 :(得分:0)

LoginControllerImpl数组不包含$_POST,而是包含url编码的param数组。 使用Bill_no函数将params解码为数组,然后从中获取urldecode($_POST)

答案 2 :(得分:0)

您需要按以下方式发送数据

  $("#owl-slider").owlCarousel({
    loop:true,
    margin:0,
    nav:true,
    autoplay:true,
    dots: true,
    transitionStyle: 'fade',
    autoplayTimeout:3000,
    autoplayHoverPause:true,
    video:true,
    lazyLoad:true,
    center:true,
    responsiveClass:true,
    responsive:{
    0:{
    items:1
    },
    600:{
    items:1
    },
    1000:{
    items:1
    }
    }

});