【问题标题】:Creating a array of multiple form input's ids and values using jquery使用 jquery 创建多个表单输入的 id 和值的数组
【发布时间】:2011-04-12 06:33:38
【问题描述】:

我有一堆具有相同类的字段,现在我要做的是获取每个字段的 id 和值,创建一个数组,然后使用 $.ajax 将其发送到 PHP 脚本,该脚本将遍历每一个并输入到数据库中。

我尝试使用 JSON,但我的服务器不支持 json_decode,这对我解码数据并将其输入数据库至关重要,我也尝试使用 Zend Json,但由于某种原因也不起作用,可能是由于字符编码问题,所以我被困在试图发送一个数据数组并遍历 php 文件中的数组,我真的需要一些帮助来完成这件事,所以任何帮助将不胜感激,我发送到的 JSON PHP 文件看起来像这样,

[{"id":"1","value":"one"},{"id":"2","value":"two"},{"id":"3","value":"three"}]

有没有办法让我用数组替换它并使用 PHP 遍历它?

提前谢谢!

【问题讨论】:

标签: php jquery mysql ajax arrays


【解决方案1】:

您可以尝试以更加 PHP 友好的方式发送您的 ajax 请求。比如这个:

$.ajax({  url : 'http://yourdomain.com', 
          data : { 
                    'item[1]' : 'one', 
                    'item[2]' : 'two', 
                    'item[3]' : 'three' 
                  }
         });

将发送这样的请求:

http://yourdomain.com/?item[1]=one&item[2]=two&item[3]=three

并且数据将在 PHP var $_GET['item'] 中可用,您可以像这样循环:

foreach($_GET['item'] as $id => $value) {
     // insert, etc..
}

【讨论】:

  • Michael Merchant 完全正确,您可能应该在 ajax 调用中使用 { 'type' : 'post' } 来发送 POST 而不是 GET 请求,因为您提到您将修改一个数据库。但是,PHP 中的结果将在变量 $_POST['item'] 而不是 $_POST['item[1]']
【解决方案2】:

如果您尝试发出 POST 请求并且出于任何原因,不发送 GET 请求对您来说很重要(例如,您正在修改存储在服务器上的信息),您可能希望使用:

$.ajax({  url : 'http://yourdomain.com', 
          data : { 
                    'item[1]' : 'one', 
                    'item[2]' : 'two', 
                    'item[3]' : 'three' 
                  },
          type: "POST",
         });

然后您可以通过调用从 $_POST 字典访问您服务器上的数据:

$_POST['item[1]']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多