我尝试了几种不同的方式,包括隐藏价值。 我有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>';
}
答案 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。