你如何$ _POST 2 <select>值?</select>

时间:2014-03-04 03:36:07

标签: php forms session

我尝试了几种不同的方式,包括隐藏价值。 我有2个单独的值,我需要分配给$ _SESSION变量,id和cust_name。在foreach循环中将它们分配给会话不起作用,因为它会中断echo输出。我发现将两个值都添加到下一个URL的唯一方法是将它们连接到分隔符,但这似乎导致了我的问题。 是否有另一种/更好的方式来分配。$ item ['id']。“:”。$ item ['cust_name']。单个会话变量'或'$ _POST值中的'单独元素=? http://i.imgur.com/6AfDMWs.png

 <?php
     foreach ($result as $item){
                echo '<option value='.$item['id'].":".$item['cust_name'].'>';
                //echo '<option type="hidden" value='.$item['cust_name'].'>';
                echo ($item['cust_name'] .",". $item['cust_addr'] .",". $item['cust_phone'].","
. $item['id']."<br />\n");
                echo '</option>';
        }

2 个答案:

答案 0 :(得分:1)

尝试关闭这样的值标记,否则如果cust_name包含空格,则会遗漏

echo '<option value="'.$item['id'].":".$item['cust_name'].'">';
              //    ^                                      ^ Add double quotes here

答案 1 :(得分:0)

将2个变量推送到第二个URL的唯一方法是使用javascript填充post上的隐藏变量,从“data”属性中提取信息。

例如,您可以将以下内容定义为选项......

<option data-customerid="123" name="customername" value="Marty McFly">Marty McFly, 123 Fake Street, 555-555-5555</option>

然后,使用javascript ...

$("#myform").submit( function(eventObj){
  $(this).append('<input type="hidden" name="customerid" value="'+$('#myselect').find(':selected').attr('data-customerid');+'" /> ');               
  return true;
  });

return true最后,然后允许以正常方式发布表单。

您需要将上面的#myform#myselect分别更改为表单的ID和select元素的ID。 如果要再发送任何其他字段,请重复以`$(this)开头的行,相应地更改ID。