使用 jQuery 为复选框创建 PHP 友好数组

问题的标题可能不太好解释,我非常感谢任何可以帮助我解决问题的人。这是一种特殊情况,我无法访问 PHP 文件并且无法更改其中的任何内容,我需要另一个我真的在任何地方都找不到的解决方案。


这是我的问题: 我有form一个hidden值:


<form id="myForm" action="" method="POST">

   <input type="hidden" name="colors[]" value="">

   <input type="submit">

</form>

我还创建了一个具有一些值的array创建javascript:


<script>

  var myArray = new Array();

  myArray.push('red');

  myArray.push('yellow');

  myArray.push('green');

</script>

然后我有一个随机的button地方没有页面(在哪里并不重要)


<button id="myButton">Add to hidden array</button>

所以我想做的是,当我点击按钮时id="myButton",我想要一个jQuery解决方案,将myArray数组中的所有元素添加到隐藏字段中name="colors[]"。我知道将它们添加JSON string到hidden字段值的解决方案,然后json_decode在我的PHP文件中使用以读取array. 但问题是我无法访问该PHP文件,也无法更改以前编写的功能和逻辑。该PHP文件收到一个array,checkboxes因为它通常以标准方式完成,例如:


<input type="checkbox" name="colors[]" value="green">

<input type="checkbox name="colors[]" value="red">

<input type="checkbox name="colors[]" value="yellow">

有没有一种方法可以myArray在hidden input不使用 JSON 字符串并且不需要更改 PHP 文件中的任何内容的情况下放入字段的 colors[] 数组,以便 PHPcolors像正常array的那样接收和处理该字段checkboxes?


慕容森
浏览 147回答 1
1回答

慕运维8079593

您可以向表单添加多个隐藏输入,每个输入都具有来自数组的不同值。$("#myButton").click(function() {&nbsp; &nbsp; $("#myForm [name='colors[]']").remove();&nbsp; &nbsp; $.each(myArray, function() {&nbsp; &nbsp; &nbsp; &nbsp; $("#myForm").append($("<input>", {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type: "hidden",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: "colors[]",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value: this&nbsp; &nbsp; &nbsp; &nbsp; }));&nbsp; &nbsp; });});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript