【问题标题】:Pass multiple values through and process them传递多个值并处理它们
【发布时间】:2012-05-19 21:26:33
【问题描述】:

我有一个表单,它为列表中的每个对象添加一个隐藏字段,然后在下一页上使用 foreach 获取该字段。一切正常。

我的问题是我需要在该列表中添加另一个变量。到目前为止,这是日期/时间。如何让同一个 foreach 获取另一个值?

谢谢

形式:

 <form action="test.php" id="calendarform" method="post">
    <input type="submit" value="Export Calendar"/>
 </form>    

jQuery:

    $('#calendarform').submit(function(e) {
            var form = $(this);
            var listItems = $('.listItem'); 
            listItems.each(function(index){   //For each event do this:
                var listItem = $(this);
                $("<input type='hidden'/>").val(listItem.text()).appendTo(form).attr('name', 'listItem[' + index + ']');
                });

在响应页面上:

foreach($_POST['listItem'] as $key => $value){

      $eventDate = trim($value);

 }

最后我希望它如何工作:

 foreach($_POST['listItem'] as $key => $value){

      $eventDate = trim($value);
      $eventTitle = trim($value2);


 }

【问题讨论】:

  • 您将从哪里获得所有日期值?
  • var txt = $('#listbox'); txt.append("
  • " + dtstart + "
  • ")
  • 您是否考虑过将值作为 JSON 传递并在 PHP 端进行解码。
  • 不,我该怎么做?到目前为止,这一切都很好,只有一个值。我只需要传递 2 个值,而不仅仅是一个。
  • 标签: php jquery forms foreach hidden


    【解决方案1】:

    如果 listItem 是这样的

    <input name="listItem[0][]">date <input name="listItem[0][]">title 
    <input name="listItem[1][]">date <input name="listItem[1][]">title 
    

    你可以这样做:

    foreach($_POST['listItem'] as $key => $values){
      list($eventDate, $eventTitle) = $values;
    }
    

    【讨论】:

    • 好的,我怎样才能重新安排这个以允许那个? $("").val(listItem.text()).appendTo(form).attr('name', 'listItem[' + index + ']');
    • 这清除了语法错误。谢谢。不过,我在理解您对表格所做的事情时遇到了一些麻烦。如何获取日期和标题?
    • 我只是使用了同一个名为 listItem 的表单字段并将其扩展为一个数组,因此它可能包含多个值。无论如何,我猜你在保持最初的“foreach”方面是错误的。尝试以其他方式完成它。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签