【问题标题】:$.post variable as array with values?$.post 变量作为具有值的数组?
【发布时间】:2010-07-22 15:58:04
【问题描述】:

通过 post 发送一些数据,但想发送一个数组但不断出错?

excludes 是我要发送的数组。

        $.post("/youradmin_v2/scripts/php/process.php", { 
            funcName:'searchContent',
            table:'content', 
            fields:'title,contentID', 
            keyword:$(this).val(), 
            tag:'option',
            excludes: ['contentType'=>'client','contentType'=>'mainsetion']                 
            }, 
            function(data){
            $("#filterContentMenu").html(data);
        });

我似乎找不到正确的方法来格式化数组以进行发布?

或澄清我想要的是把它变成一个像

这样的 php 数组
$excludes=array('fieldA'=>'client','feildB'=>'mainsetion')   

一样使用
foreach($excludes as $value) {
        $toExclude .=" AND ".$value['name']."!='".$value['value']."' ".$value;
    }

【问题讨论】:

  • sigh请,请,当您收到错误消息时,请将该错误消息添加到您的帖子中
  • 问题标题应该是“$.post variable...”,因为“$post variable...”在这种情况下可能会被误解。

标签: jquery post arrays


【解决方案1】:
    $.post("/youradmin_v2/scripts/php/process.php", { 
         funcName:'searchContent',
         table:'content', 
         fields:'title,contentID', 
         keyword:'blah', 
         tag:'option',
         excludes: {contentType:'client',anotherContentType:'mainsetion'}              
        }, 
        function(data){
        $("#filterContentMenu").html(data);
    });

【讨论】:

  • ok 这个数组停止错误; {contentType:'client',anotherContentType:'mainsetion'} - 谢谢!但它没有得到我所期望的 php 文件的方式。基本上我试图为 sql 查询创建一个字符串。即 "AND contentType!='client' AND contentType!='mainsection'" 但我得到的是 AND c!='c' AND m!='m' using php foreach($excludes as $value) { $ toExclude .="AND ".$value['name']."!='".$value['value']."' "; } 你认为我在做什么是可能的?!非常感谢!丹
  • 检查帖子 - 它是“excludes[contentType]”等...您也不能两次使用键名“contentType”。我认为你也可以做这样的事情“排除:{contentType:['client','section']}”.. 只需在你的 php 中执行 print_r($_POST) 来找出它是通过什么来实现的。跨度>
  • 感谢 vinhboy - 我想我会放弃这种方法。我将通过 jquery 使用一个字符串,出于安全考虑,我并不热衷于这样做。所以; excludes:"AND contentType!='client' AND contentType!='mainsection'" 感谢您的回复!
  • 哦.. 我很遗憾你不会使用它 :(... excludes: {contentType:['client','section']} 变成 $_POST['excludes']['contentType '] 这是一个数组,所以你可以使用 in_array.anywho,goodluck
【解决方案2】:

您似乎正在使用 PHP 样式的符号来指定数组键。 试试

excludes: {'contentType':['client','mainsetion']}   

【讨论】:

  • 您需要为此使用花括号,而不是方括号。在 JS 中,括号用于数组,而不是对象。另请注意,您可能会用第二个覆盖它;您可能希望它更像excludes: {contentType: ['client', 'mainsetion']}
  • 你为什么不编辑你的答案以使 JS 在语法上有效?
  • ++ 短小精悍,切中要害。可能还不足以让 OP 咀嚼。干杯。
猜你喜欢
  • 1970-01-01
  • 2019-01-06
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多