【问题标题】:Parsing Javascript array to PHP issue将 Javascript 数组解析为 PHP 问题
【发布时间】:2018-04-26 11:11:52
【问题描述】:

问题是在每个按钮单击时都会创建一个新数组。是否可以将所有按钮值存储到单个数组中?这怎么可能。可以看here

我在点击事件时通过 ajax 将该数组解析为 PHP,如下所示:

$('#validate').click(function(e) { 
  $.ajax({
           type: "POST",
           url: "somephp.php",
           dataType: "json",
           data: {
              UserInput:items
           },
 })
});

var items = [];
$("#button-list button").each(function(index) {
  var toggle = false;
  $(this).on("click", function() {
    toggle = !toggle;
    if (toggle === true)
      items.push(this.value);
    else
      items.splice(items.indexOf(this.value), 1);

    console.log(items);
    $("#results").text(items);
    $(this).toggleClass("btn-default btn-success").find('span').toggleClass("glyphicon-plus glyphicon-minus");
  });
});
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>


<div id="button-list">
 <button type="button"  class="btn btn-default btn-sm" value="(1,1)">
 <span class="glyphicon glyphicon-plus"></span> (1,1)</button>
<button type="button"  class="btn btn-default btn-sm" value="(3,2)">
 <span class="glyphicon glyphicon-plus"></span> (3,2)</button>
 <button type="button"  class="btn btn-default btn-sm" value="(4,4)">
 <span class="glyphicon glyphicon-plus"></span> (4,4)</button>
</div>
<p id="results"></p>

【问题讨论】:

  • 那么你到底想要什么输出?我看到单个数组包含所有数据。我认为您会因为 console.log() 一次又一次地打印而感到困惑
  • 输出是每个按钮的value。每个按钮单击都应该被推入一个数组中。当再次单击同一个按钮时,它应该从数组中删除。像我的代码一样,但在一个数组中
  • 我认为您因为console.log() 一次又一次地打印而感到困惑。它工作正常
  • @AlivetoDie 看我添加的图片。
  • 据我所知,您正在将 Javascript 数组变量解析到服务器端,对吗?您能解释一下如何将该变量解析到服务器吗?

标签: javascript php jquery arrays


【解决方案1】:

我在这里看到了您的问题,但是将“单个”数组解析为 php 的唯一方法是将其转换为字符串。否则保持原样并在 PHP 中将其作为数组处理。

以下是如何在 Javascript 中将数组转换为字符串:

$('#validate').click(function(e) { 
     let k = items.join("");
      $.ajax({
       type: "POST",
       url: "somephp.php",
       dataType: "json",
       data: {
          UserInput:k
             }
     })
    });

【讨论】:

    【解决方案2】:

    有很多方法可以解决它。其中两个:

    1. 为每个按钮创建一个 .click 事件。
    2. 做一个 if 语句谁 比较id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-13
      • 2011-07-02
      • 1970-01-01
      • 2018-08-25
      • 2015-05-21
      相关资源
      最近更新 更多