问题描述
|
问题陈述:First格式的所有数据都未进入后端文件(ReserveRoomsBackend.PHP),该文件包括start_date,end_date,sr_citizen_choice,它们可能在程序之间丢失,因此提交时不传递给另一页,因此应该解决方案。
我在Reserve.html文件中使用了两个文件
1.findReserveRoomsBackend.PHP是一个文件,它将在其中找到空闲房间并返回一个房间和相应的建筑物
我认为,当findReserveRoomsBackend.PHP返回房间号时,日期会丢失
2.ReserveRoomsBackend.PHP文件用于MysqL连接,并将表单数据插入MysqL数据库。
以下是Reserve.html文件
<html>
<script type=\"text/javascript\" src=\"../jQuery.js\"></script>
<script type=\"text/javascript\">
$(document).ready(function(){
document.getElementById(\"form_reserve\").style.display = \"none\";
document.getElementById(\"label\").style.display = \"none\";
});
function doAjaxPost(){
var from_date = document.getElementById(\"from_date\").value;
var end_date = document.getElementById(\"end_date\").value;
var no_of_males= document.getElementById(\"id_males\").value;
var no_of_females=document.getElementById(\"id_females\").value;
var no_of_childrens=document.getElementById(\"id_childrens\").value;
var sr_citizen ;
for (var i=0; i < document.reserve_rooms.sr_citizen_choice.length; i++)
{
if (document.reserve_rooms.sr_citizen_choice[i].checked)
{
var sr_citizen = document.reserve_rooms.sr_citizen_choice[i].value;
}
}
//.getJSON -- get building id,building name,room number
// if building id > 0 show the reservation details form
// else show the messgae
//findReserveRoomsBackend.PHP is the file in which it will find out the free rooms and //return a single room and the respective building
//I think that when the findReserveRoomsBackend.PHP return the room number then dates are //lost
//findReserveRoomsBackend.PHP file for MysqL connectivity and insert the date of form into the MysqL database
var link = \'http://localhost/findReserveRoomsBackend.PHP?start_date=\'+from_date+\' & end_date=\'+end_date+\' & sr_citizen_choice=\'+sr_citizen+\' & no_of_males=\'+no_of_males+\'& no_of_females=\'+no_of_females+\' & no_of_childrens=\'+no_of_childrens;
$.getJSON(link,function(json)
{
if( json.length> 0)
{
document.form_reserve.action =\"http://localhost/ReserveRoomsBackend.PHP? bldg_number=\"+json[0].bldg_number +\" & room_number=\"+json[0].room_number;
document.getElementById(\"form_reserve\").style.display = \"block\";
}
else
{
document.getElementById(\"label\").style.display = \"block\";
}
alert(\"inside json finction \" + json.length+\" \"+json[0].room_number+\" \"+json[0].bldg_number);
}); //.getJSON
}//doAjaxPost
</script>
<div style=\"width: 950px; height: 500px; background-color: #FAE89E; border-width: 3px; border-style: inset; color: #FF0000; font-size: 13px; font-family: Arial; overflow: auto;\">
<script type=\"text/javascript\" src=\"../jQuery.js\"></script>
<script type=\"text/javascript\" src=\"../jquery.ui.datepicker.js\"></script>
<script language=\"javascript\" type=\"text/javascript\" src=\"datetimepicker.js\"> </script>
<body>
------这是第一种形式------------------------------------------- ------------------------
<form id=\'target\' METHOD=\"POST\" name=\'reserve_rooms\'>
<p> From Date:<input name=\"from\" type=\"text\" id =\"from_date\"/>
End Date:<input name=\"to\" type=\"text\" id=\"end_date\" />
Senior Citizen*:<input type = \"radio\" name = \"sr_citizen_choice\" value = \"Y\" />Yes
<input type = \"radio\" name = \"sr_citizen_choice\" value = \"N\" checked />No
<input id=\"find_availability\" type=\"button\" value=\"Find Availability\" onClick=\"doAjaxPost()\" />
</p>
</form>
<div id=\'label\' name =\'label\'>
No Rooms are available for the given period
</div>
-这是第二种形式-----------------------------------
<form id=\'form_reserve\' name=\'form_reserve\' \" METHOD=\"POST\">
<fieldset>
<legend>Personal Details :</legend>
<b>Name*:</b> <input type=\"text\" name=\"fname\" />
Address*:<input type=\"text\" size=50 width=30 name=\"faddress\"/>
City*:<input type=\"text\" name=\"fcity\" />
State*:</b> <input type=\"text\" name=\"fstate\" />
Country*:<select name=\"gourl\" size=\"1\">
<option>India</option>
</select>
</fieldset>
<input type=\"submit\" value=\"Reserve Room\"/>
</form>
</body>
</html>
解决方法
这是我假设的所有相同HTML文件吗?
如果是这样,则您有两个开始标签,而只有一个结束标签。第一个(日期字段上方)具有无效的方法属性(\'button \')。第二个实际上将创建一个适当的表单,大概是正在提交的表单。
因此,摆脱掉第一个标签,然后将第二个标签移到日期字段上方。
其次,提交的字段名称来自\'name \'属性而不是\'id \',因此您的日期字段必须具有name = \“ start_date \”和name = \“ end_date \”
最后,它是一个POST表单,因此您可以在PHP中以$ _POST而不是$ _GET找到发布的变量。您也可以在$ _REQUEST中找到它们,尽管就我个人而言,如果您在代码中指定希望用户提供的变量来自的位置,则这样做更安全,因此请使用$ _POST。
希望这能回答!