传递的Ajax参数返回undefined

时间:2014-10-16 04:14:48

标签: php jquery ajax opencart

我发布了对PHP函数的Ajax调用,但传递的所有数据都是“UNDEFINED”。当我调试JQuery时,值似乎有效。 undefined在服务器端。 PHP方面。

$('.js-checkout-shipping-submit').on('click', function(e) {

$.ajax({
  // Change the URL to the right one
  url: 'index.php?route=checkout/checkout/updateShippingAddress',
  type: 'post',
  dataType: 'json',
  data: 'firstName:' + $(' .js-checkout-firstName').val() +
        ',lastName:' + $('.js-checkout-lastName').val() +
        ',address:' + $('.js-checkout-address').val() +
        ',zipcode:' + $('.js-checkout-zipcode').val()  ,
  success: function(data) {

    if(data['status'] === "pass"){
      console.log("success");
    }

    if(data['status'] === "fail") {
      console.log("fail");
    }
  },
  error: function(data) {
  }
});

e.preventDefault();

});

 public function updateShippingAddress(){

    $firstName=$this->request->post['firstName'];
    $lastName=$this->request->post['lastName'];
    $address=$this->request->post['address'];
    $zipCode=$this->request->post['zipcode'];
}

2 个答案:

答案 0 :(得分:1)

您将JSON对象发布为字符串,请尝试此

data: { // making the data to become object
   firstName : $('.js-checkout-firstName').val(),
   lastName : $('.js-checkout-lastName').val(),
   address : $('.js-checkout-address').val(),
   zipcode : $('.js-checkout-zipcode').val()
 },
 success: function(data) {
 ...

如果你得到undefined作为post params的值,可能有jQuery选择器问题。

尝试记录$('.js-checkout-firstName').val(),看看你得到了什么,并在课程.js-checkout-firstName

中输入shre

答案 1 :(得分:0)

您必须将json格式的request参数传递给ajax。 因此您的数据参数值就像

data: {'firstName' : $('.js-checkout-firstName').val(),'lastName' : $('.js-checkout-lastName').val(),'address' : $('.js-checkout-address').val(),'zipcode' : $('.js-checkout-zipcode').val()}, success: function(data) {