【问题标题】:How to send a list of values to php using jquery如何使用 jquery 将值列表发送到 php
【发布时间】:2014-10-04 20:05:57
【问题描述】:

我有一个表格,其中第一列由复选框组成。我想用 jquery 收集检查行的值并将它们传输到 aphp 函数进行处理。

到目前为止我有:

var searchIDs = $('input:checked').map(function(){
                  return $(this).val();
                });

它返回一个包含检查值的对象。

我可以使用以下方法获取这些列表:

searchIDs.get()

形式:

1,2,3 等

现在我需要将它发送到 php.ini。我试过了:

                   $.ajax({
                   type: "POST",
                   url: "update/updateR",
                   contentType: 'application/json',
                   data: searchIDs.get() , 
                   contentType: 'application/json',
                   dataType: 'json',
                   success: function(){
                       alert("OK");
                   }
               });

但是在我的 php 函数中,它包括:

 $json = $_POST['json'];
 var_dump($json);
 exit;

我收到以下错误:

<p>Message:  Undefined index: json</p>

我做错了什么?

附录:

我把ajax改成

                   $.ajax({
                   type: "POST",
                   url: "update/updateR",
                   contentType: 'application/json',
                   data:{ searchIDs : searchIDs.get() },                        
                   dataType: 'json',
                   success: function(){
                       alert("OK");
                   }
               });

但我得到了同样的错误,并且 php 方法中的 var_dump 给出了 NULL

【问题讨论】:

  • 首先,var_dump($_POST) 查看实际发送的内容。如果要指定要发送的 json 属性,则需要从 jQuery 发送一个对象:data: { json: searchIDs.get() }
  • PHP 要求您以 key=value 格式发送数据,以便使用 with 填充 $_POST/$_GET。您实际上只发送value,所以PHP 没有什么要处理的。尝试data: {foo: searchIDs.get()} 然后$_POST['foo']

标签: javascript php jquery ajax


【解决方案1】:

您使用json 作为传递数据的键。在本例中,searchIDs 用作键:

      $.ajax({
           type: "POST",
           url: "update/updateR",
           data: { searchIDs: searchIDs.get() }, 
           dataType: 'json',
           success: function(){
               alert("OK");
           }
       });

然后你可以使用密钥searchIDs访问它:

$json = $_POST['searchIDs'];
var_dump($json);
exit;

【讨论】:

  • 您是否将 PHP 中的行更改为 $json = $_POST['searchIDs'];var_dump($_POST); 显示什么?
  • 其实,看看这个,contentType 可能会混淆 PHP 的东西,所以我会删除它并尝试上面更新的 ajax。
  • 谢谢,顺便说一句,你怎么知道 contentType 是问题所在? - 比尔
猜你喜欢
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多