【问题标题】:How to pass an array parameter with javascript如何使用javascript传递数组参数
【发布时间】:2018-03-06 17:05:31
【问题描述】:

我必须将ids 数组从一个页面传递到另一个页面。我在 PHP 中创建 $ids 并以这种方式将其与 jQuery 一起使用:

var ids = <?php echo json_encode($ids); ?>;

jQuery(ids).each(function() {
    filters.push('ids[]=' + jQuery(this));
});

网址结果如下:

http://url.it/?sort=newest&ids[]=[object%20Object]&ids[]=[object%20Object]&ids[]=[object%20Object]&ids[]=[object%20Object]&ids[]=[object%20Object]

我想在 URL 中包含一个包含所有元素的数组,但我获得了包含一个元素的所有数组。

你能帮帮我吗?

【问题讨论】:

  • jQuery(ids) 需要一个有效的选择器字符串。如果 ids 应该包含 ids,那么在您执行该操作时它必须遵循 #id1, #id2, ... 的模式。但是看起来 id 将是 json,而不是这种预期的模式。
  • 不使用 jQuery 会有所帮助。原生数组函数完全可以做你想做的事。
  • 如果不知道 $ids 包含什么(因此,var ids 包含什么),就不可能说出来

标签: javascript php jquery arrays json


【解决方案1】:
var params = ids.map(id => 'ids[]=' + encodeURIComponent(id))
filters.concat(params)

【讨论】:

    【解决方案2】:

    你不需要做额外的事情。只需像这样创建您的链接:

    var ids = <?= json_encode($ids); ?>;
    var link = 'http://url.it/?sort=newest&ids=[' + ids.join(',') + ']';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2017-04-27
      • 2011-09-24
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多