Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否发布不在表单标记中的元素?_Php_Javascript - Fatal编程技术网

Php 是否发布不在表单标记中的元素?

Php 是否发布不在表单标记中的元素?,php,javascript,Php,Javascript,我有这样的代码: <form enctype="multipart/form-data" method="POST" action="blabla.php" class="addToCart"> <input type="button" onclick="addToCartMulti();" value="Add Tracks to Cart" id="addToCart" name="addToCart"> </form> 所以问题是在这之前的某个地方

我有这样的代码:

<form enctype="multipart/form-data" method="POST" action="blabla.php" class="addToCart">
  <input type="button" onclick="addToCartMulti();" value="Add Tracks to Cart" id="addToCart" name="addToCart">
</form>
所以问题是在这之前的某个地方:
$(“form.addToCart”).submit()。我需要添加一些JavaScript来实际包含其他复选框,以便将它们发布到页面上


注意:我不想使用ajax。

在表单中添加一个隐藏的表单字段,然后将所需的跟踪数据以任何格式(例如逗号分隔的列表)复制到该隐藏字段中。然后像现在一样调用submit


注意:看起来您当前正在“each”循环中调用sumbit,这可能不是您想要的。您希望处理每个复选框的所有复选框,然后在完成后进行提交。因此,“submit()”调用应该在每个循环之外,除非我误读了您的意图。

在提交之前将
输入移动到
表单
中?是否有原因需要将曲目列表置于表单之外?也许您可以在表单中放置隐藏的输入,并在单击复选框时更新其值。在这种情况下,我无法将其移入。我更愿意获取它,因为曲目列表在页面上的位置可能会发生变化。另外,我不想在页面顶部有一个表单标签,因为页面上有多个单独的表单。可以使用JavaScript创建一个隐藏的表单字段,并在表单提交时将复选框值复制到其中,但是,最好首先简单地重新组织HTML标记,将该字段包含在表单中。或在表单上创建一个隐藏字段,并绑定复选框
onchange
,以更新该隐藏表单字段这是很难做到的。我正在寻找一种方法来提交一个输入框,就像现在一样,而不将其移动到。我猜这不容易?是的,如果表单元素,无论是隐藏字段还是输入框,都不在表单标记中,那么您必须使用javascript将其添加到发布的内容中。你的选择基本上是(A)重做html,所以你需要的是在表单中,或者(B)在表单提交之前使用javascript将其添加到表单中。我将此标记为正确,因为这是最后一个命令。这就是我想知道的。。。
<ul>
 <li><input type="checkbox" checked onclick="onSongClick(this);" id="trackNr_1" name="trackSelect" class="trackSelectionCheck"> 1. Train Love</li><li>
  .....
</ul>
function addToCartMulti() {
  $("input.trackSelectionCheck").each(function(index) {
              var track = $(this).attr("id");
              var start = 8;
              var end = track.length;
              track = track.substring(start,end);
              $("form.addToCart").submit();
        });
  }