使用Ajax Jquery访问Php返回的多维数组

I'm trying to access individual data created in a multidimensional php array with jquery. I can see the data is there in the console but when I'm trying to post the data, Php $_POST returns undefined.

register.php

  //put customer information in array so that it can be reused in js
  $customerArray = array(
      array(
          'customerid' => $customerId, 
          'countrycode' => $countryCode,
          'mobilephone' => $mobilePhoneCode
      )
  );

  //encode in json
  echo json_encode($customerArray);

jquery

$.ajax({
  type: "POST",
  url: 'queries/register.php',
  data: formvalues, // serializes the form's elements.
  success: function(customerarr) {

    console.log(customerarr);
    //get customer array information
    var customerID = customerarr['customerid'];
    var countrycode = customerarr['countrycode'];
    var mobilephone = customerarr['mobilephone'];

  }
  //function to send a new verification number 
  $('#sendnewverificationNumber').click(function(e) {
    e.preventDefault();
    //capture the customerid who previously signed up
    var newnumberform = 'customerID=' + encodeURIComponent(customerID) +
      '&countrycode=' + encodeURIComponent(countrycode) +
      '&mobilephone=' + encodeURIComponent(mobilephone);
    //ajax POST
    $.ajax({
      type: "POST",
      url: 'queries/validation.php',
      data: newnumberform, // serializes the form's elements.
      success: function(newdata) {

        console.log(newdata);
        //write message
        var newmsg = 'We went a new verification number to your mobile.'
        //append class to make it show
        $("#validationpmessage").addClass("text-success");
        //display message in the modal                                                                        
        $("#validationpmessage").html(newmsg);
      }
    });
  });
})
douding_1073
douding_1073 我应该考虑一下。问题解决了。谢谢。
2 年多之前 回复
duanbei1903
duanbei1903 将dataType:'json'添加到您的ajax调用中,以确保jQuery将响应解析为json而不是字符串。您还可以添加标题('Content-Type:application/json');在回显PHP代码中的响应之前。
2 年多之前 回复
duanfei8149
duanfei8149 如果我做console.log(customerarr),我会看到完整的数组{“customerid”:56572018,“countrycode”:“+1”,“mobilephone”:“9075558882”}
2 年多之前 回复
doufang2023
doufang2023 我编辑了那个。我刚刚分心了。
2 年多之前 回复
doutan8601
doutan8601 在你的问题中,它说$customerArray代码在array.php中,但是你正在调用queries/register.php?你的问题和你的代码到处都是。请重写您的问题并明确说明代码在哪里。另外,告诉我们你在哪里使用$_POST,你声称它不起作用。在那之前,我出去了......
2 年多之前 回复
doufen5175
doufen5175 当我尝试访问每个单独的密钥时,如此varcustomerID=customerarr['customerid'];或varcustomerID=customerarr.customerid;当我在控制台中打印这个值时,就像这个console.log(customerID);它返回'undefined'。
2 年多之前 回复
dongwei3336
dongwei3336 然后你将得到一个对象,你可以像我之前展示的那样访问参数:customerarr.customerid
2 年多之前 回复
douyan1970
douyan1970 我听从了你的建议。现在将旧数组更改为此$customerArray=array('customerid'=>$customerId,'countrycode'=>$countryCode,'mobilephone'=>$mobilePhoneCode);
2 年多之前 回复
douwo1517
douwo1517 好的。我的错。我知道了。谢谢你的帮助。
2 年多之前 回复
duan01203
duan01203 “我想使用常量而不是数字的东西”-???我不知道这意味着什么。如果您像现在一样从PHP返回数据,则需要使用以下命令访问它:newdata[0].customerid(如果这就是“数字事物”的意思)。我不知道与常数有什么关系?
2 年多之前 回复
doupu3211
doupu3211 “Php$_POST返回undefined”-在哪里?我没有看到你试图在任何地方访问任何$_POST数据?
2 年多之前 回复
drp935159
drp935159 是的,但我想使用常量而不是数字的东西。如果我想添加更多数据,它会更漂亮。
2 年多之前 回复
dongyumiao5210
dongyumiao5210 因为你返回的结构比你需要的更复杂?要获取值,您现在需要执行:newdata[0].customerid而不仅仅是newdata.customerid。似乎没必要。
2 年多之前 回复
dongyishen5796
dongyishen5796 为什么不?因为您不需要外部数组,这就是您无法访问所需属性的原因。您想要的javascript对象不必要地嵌套在javascript数组中
2 年多之前 回复
duansha7025
duansha7025 为什么不?
2 年多之前 回复
duanlu1950
duanlu1950 为什么要返回多维数组?这似乎没必要。只需返回一个简单的数组。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐