【问题标题】:How to send array data from javascript image picker to php request如何将数组数据从 javascript 图像选择器发送到 php 请求
【发布时间】:2018-10-12 11:26:40
【问题描述】:

我使用图像选择器 http://rvera.github.io/image-picker/ 。有多个选定的图像,我想将输出数据从 javascript 数据发送到 php 表单提交,示例代码在这里

HTML/JS

<div role="group" aria-label="Image Option Buttons">
  <div class="btn-group">
    <a href="#" id="toggleAll" data-toggle="" aria-pressed="false" autocomplete="off"> Select All</a>
  </div>
</div>

<select multiple='multiple' class='image-picker show-labels show-html hide' name='imageList'>
     <option data-img-src="http://placekitten.com/220/200" name="satu" value="satu">Cute Kitten 1</option>
     <option data-img-src="http://placekitten.com/180/200" value="dua">Cute Kitten 2</option>
     <option data-img-src="http://placekitten.com/130/200" value="3">Cute Kitten 3</option>
     <option data-img-src="http://placekitten.com/270/200" value="4">Cute Kitten 4</option>
</select>

<form method="post" name="myform" action="save.php">
  <input type="hidden" name="data" value="">
  <input type="submit" name="send" value="submit" onclick="imgg()" />
</form>



<script type="text/javascript">
  $(".image-picker").imagepicker({

  });


  function imgg() {
    $("*[multiple=multiple]").find("option:selected").each(function(index, item) {
      var src = $(item).attr("data-img-src");
      document.myform.data.value = src;
      document.forms["myform"].submit();
      console.log(src);
    });

    $('#toggleAll').on('click', function() {
      // click event listener 
      if ($(this).attr('aria-pressed') == 'false') {
        //checks if toggled on or off, any other property can be used
        $('.image-picker').find($('option')).prop("selected", "selected");
        //looks for the image picker option list and sets everything to selected
        $('.image-picker').data('picker').sync_picker_with_select();
        //now triggers the sync function to reinitialise all of the selected images. 

        $('.image-picker').find($('option')).prop("selected", "selected").each(function(index, item) {
            $("submit").click(function() {
              var src = $(item).attr("data-img-src");
              document.myform.data.value = src;
              document.forms["myform"].submit();
              console.log(src);
            });
        });

      } else {
        //does the exact opposite of above. 
        $('.image-picker').find($('option')).prop("selected", false);
        $('.image-picker').data('picker').sync_picker_with_select();
        console.log($(item).attr("data-img-src"));
        $('.image-picker').find($('option')).prop("selected", "selected").each(function(index, item) {

        });
      }

    });

  }
</script>

PHP

if (isset($_POST['data'])) {

    $names = $_POST['data'];

  print_r ($names) ;
}

但这仅显示一个值,例如 http://placekitten.com/270/200

我测试并查看了 console.log 输出,它可以像显示数组一样工作

http://placekitten.com/220/200

http://placekitten.com/180/200

http://placekitten.com/130/200

http://placekitten.com/270/200

但不用于 save.php

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:
    function imgg(){
    $("*[multiple=multiple]").find("option:selected").each(function(index, item){ ...
    

    我想我发现问题是你使用的选择器只是用于“选择”选项,难怪为什么输出值应该只有一个值。

    【讨论】:

    • data "var src = $(item).attr("data-img-src"); " 是数组,当我选择 2 或 3 个 img 项目时,为什么不能发送到 php作为数组
    猜你喜欢
    • 2020-07-20
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2012-12-14
    • 2017-06-17
    • 1970-01-01
    • 2021-12-03
    相关资源
    最近更新 更多