首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用AJAX将对象发布到PHP

使用AJAX将对象发布到PHP
EN

Stack Overflow用户
提问于 2013-03-17 00:20:32
回答 2查看 78关注 0票数 0

我有以下代码,但我无法使用ajax访问传递的对象的内容。我遗漏了什么?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(".submit").click(function(){ 
  var fruits = {"fruits" : ["apples","banana","oranges"]};
  var cars = {"cars" : ["BMW", "Honda", "Toyota"]};
  var my_Obj = fruits + cars;
  mydata = JSON.stringify(my_Obj); 
  $("#mydata").val(mydata);
  $.ajax({
    url: "add.php",
    type: "POST",
    data: {
      name: $('#name').val(),
      Address: $('#Address').val(),
  my_obj : $mydata
    }, 
    datatype: "json",
    success: function (status) {
      if (status.success == false) {
        alert("Failure!");
      } else  {
        alert("Success!");
      }
    }   
  });
}); 


  <form id="json" method="post" action="add.php">
    <input type="text" name="name" id="name" value="">
    <input type="text" name="address" id="Address" value="">
    <input type="text" name="mydata" id="mydata" hidden>
    <input type="submit" name="submit" id="submit" class="submit" value="send">
  </form>

add.php

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$new_post['id'] = $_POST['id']; 
$new_post['name'] = $_POST['name'];
$new_post['address'] = $_POST['address']; 
$new_post['my_obj'] = $_POST['mydata'];
print_r ($new_post);

my_obj显示对象对象。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-03-17 00:26:18

我发现有一些地方是错误的:

1,可以通过单击enter提交表单,因此我将使用.submit()方法而不是'submit.click()':

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('form').submit(function(){
});

2,除非您在.submit()方法中输入return false,否则表单将提交

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('form').submit(function(){
    // all of your code
    return false;
});

3 .在add.php中,您需要返回json信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo json_encode($new_post);

4,您没有在add.php中设置status

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$new_post['status'] = true; // or false depending on what your trying to do

希望这能给你一个开始。

**注意:这不会考虑您发送到add.php的var

票数 0
EN

Stack Overflow用户

发布于 2013-03-17 00:27:31

您不能通过表单提交发送原始对象,您需要首先将它们展平为文本。这是通过序列化完成的,最简单的方法是通过JSON,因为JSON在客户端和大多数服务器语言上都是现成的。

在您的示例中,将AJAX调用中的my_obj部件替换为: my_obj: JSON.stringify(my data)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15456286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文