如何让php循环输出的表格可以提交数据并跳转页面

表格部分的循环代码:$i=0;$j=0;$amax=count($room_data);echo'<tableborder="1"><tr><th>房间类型</th><t... 表格部分的循环代码:
$i=0;
$j=0;
$amax=count($room_data);
echo '<table border="1"><tr><th>房间类型</th><th>门店价</th><th>会员价</th><th>剩余房间</th><th>预订</th></tr>';
for($i=0;$i<$amax;$i++){
echo '<tr>';
for($j=0;$j<4;$j++){
echo "<td>".$room_data[$j][$i]."</td>";
}
$ii=$i+1;
echo '<td><input id="room_type_'.$ii.'" name="room_type" type="button" value="预订" onclick="window.location.href="reserve.php""></td></tr>';
// echo "<script>location.href='reserve.php';</script>";
}
echo "</table>";

因为是要做个连锁酒店的预订系统,所以要循环输出多个店的信息,然后再选择预订。图为1家店的信息。
现在已经可以根据循环输出多个表格,想让表格里的每个“预订”按钮都能将这一行的数据传到reserve.php文件并跳转,然后再reserve.php文件里实现预订,请问怎么将值传过去,或者这样的功能怎么实现,要详细代码和讲解。急求大虾帮忙!小弟万分感谢!分不多,30分先奉上!成功后一定追加!
补充问题:

问题是点击表格中的按钮一直没有反应,是php输出的表格不能提交吗?求指教!
//二维数组是由多个一维数组合成的
$room_data=array($array_room_type,$array_basic_price,$array_vip_price,$array_last_room);
//循环输出各房型的房间信息
$i=0;
$j=0;
$amax=count($room_data);
echo '<table border="1"><tr><th>房间类型</th><th>门店价</th><th>会员价</th><th>剩余房间</th><th>预订</th></tr>';
for($i=0;$i<$amax;$i++){
echo '<tr>';
for($j=0;$j<4;$j++){
echo "<td>".$room_data[$j][$i]."</td>";
}
$ii=$i+1;
//$hotel_id;
//$room_type=$room_data[0][$i];
echo '<td><input id="room_type_'.$ii.'" name="room_type" type="button" value="预订" onclick="window.location.href=reserve.php?hotel_id=$array_hotel_id[$a]&room_type=$room_data[0][$i]&basic_price=$room_data[1][$i]&vip_price=$array_vip_price[2][$i]"></td></tr>';
}
echo "</table>";
展开
 我来答
马后雷鼓下扬州5058
2013-04-01 · TA获得超过4321个赞
知道小有建树答主
回答量:693
采纳率:33%
帮助的人:803万
展开全部
我看你里面用到了 Javascript,那么你需要在 reserve.php 后面加上 query string(查询字符串),也就是 连锁 ID,房间 ID,还有其它信息。

onclick="window.location.href=reserve.php?hotel_id=$hotel_id&room_id=$room_id&price=$price"

注意上面这行用到三个变量,$hotel_id,$room_id,$price,它们应该都存在于你的 $room_data 中,这些你自己可以替换。然后在 onlick 跳转到 reserve.php 的时候,你就得到了 3 个 $_GET:

$_GET["hotel_id"],$_GET["room_id"],$_GET["price"]

你要注意单引号和双引号的使用,你写的这句 onclick="window.location.href="reserve.php"",在双引号中又出现了双引号,应该去掉里面的 “(双引号)或使用 \'(反斜杠 单引号)。
更多追问追答
追问
问题是点击表格中的按钮一直没有反应,是php输出的表格不能提交吗?求指教!
代码见补充问题
追答

之前没有注意细节,window.location.href="两边不能省略引号"

 

echo '<td><input id="room_type_'.$ii.'" name="room_type" type="button" value="预订" onclick="window.location.href=reserve.php?hotel_id=$array_hotel_id[$a]&room_type=$room_data[0][$i]&basic_price=$room_data[1][$i]&vip_price=$array_vip_price[2][$i]"></td></tr>';

 

注意上面 $ii 可以正常输出,因为你使用了 '.$ii.'

 

window.location.href=后面整个要加 \",也就是 onclick="window.location.href=\'。。。\'"

 

你的 $array_hotel_id[$a],$room_data[0][$i],$root_data[1][$i],$array_vip_price[2][$i] 这些都是变量,要和前面的 $ii 写法一样:'.变量.'(单引号 点 变量 点 单引号),不然它们会被当做字符串直接被输出。所以把整个这一句改为:

 

echo '<td><input id="room_type_'.$ii.'" name="room_type" type="button" value="预订" onclick="window.location.href=\'reserve.php?hotel_id='.$array_hotel_id[$a].'&room_type='.$room_data[0][$i].'&basic_price='.$room_data[1][$i].'&vip_price='.$array_vip_price[2][$i].'\'"></td></tr>';

 

 

有时候这种单引号,双引号,变量夹杂在一起很容易出现错误,建议你使用带高亮显示的编辑器。这样看起来方便一些。

阳光上的桥
2013-04-01 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65809
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
要传一串数据过去是肯定可以的,但是你这个应用,好像只需要把房间类型的ID传过去就可以了吧,传一串数据过去的例子:

$i=0;
$j=0;
$amax=count($room_data);
echo '<table border="1"><tr><th>房间类型</th><th>门店价</th><th>会员价</th><th>剩余房间</th><th>预订</th></tr>';
for($i=0;$i<$amax;$i++){

echo '<tr>';
$link='';
for($j=0;$j<4;$j++){
echo "<td>".$room_data[$j][$i]."</td>";
$link.='&v'.$i.'='.$room_data[$j][$i];
}
$link='?' & substr($link,1);
$ii=$i+1;
echo '<td><input id="room_type_'.$ii.'" name="room_type" type="button" value="预订" onclick="window.location.href="reserve.php'.$link.'""></td></tr>';
// echo "<script>location.href='reserve.php';</script>";
}
echo "</table>";

注意,我增加了变量$link用来组装要传递的参数,参数名称我不知道,所以我弄的是v1=xxx&v2=xxx这样的格式,你可能需要调整。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
离魔太魔小指曾09
2015-09-21 · TA获得超过131个赞
知道小有建树答主
回答量:312
采纳率:0%
帮助的人:97.2万
展开全部
PHP 遍历 c-v 表格数据放到表单FORM 提交 v-c 提交成功跳转 这只是路由跳转
M-V-C 基本过程
你的如何在那部分出了疑问?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-02
展开全部
传过去的方法很简单啊:
1. 在你的$room_data 数组里加每个房间的id号,就是数据表中的主键
2. 在循环显示中,在"预定"按钮的 reserve.php后加参数: reserve.php?id=<?php echo $room_data[$j][$i]?> 这个根据你数组id的位置定
3. 剩下的就是在reserve.php中接受改id值了 方法:$id=$_GET['id'];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式