不确定提交表单时如何处理查询字符串


Not sure how to deal with Query String when submitting a form

如果您访问此网站:http://www.lodgeatjh.com,然后你填写在线表格并点击"检查可用性",我得到以下查询字符串:

http://www.secure-res.com/res/vn4/avail.aspx?hotelid=3687&checkindate=3/17/2012&nights=3&rooms=1&adults=1&children=0&childrenages=&trr=6FFFFFD8E9AC12&culture=1&culturename=en-US&wtpid=1

现在,我必须用一个自定义主题重新创建这个网站,并将其放置在wordpress中。我确实理解查询字符串会根据客户端决定选择的内容来更改值。但是,我的字符串查询与上面的查询不匹配。

这是我的表格:

<form id="form" method="GET" target="_blank" action="/res/vn4/avail.aspx?">
            <input type="hidden" name="hotelid" value="3687" />
            <label id="checkin">Check-in Date:</label>
            <input type="text" name="checkindate" id="datepicker" value="<?php echo $date; ?>" size="10" />
           <!--<img src="<?php bloginfo('template_url'); ?>/images/calendar.gif" border="0" width="22" height="19" alt="calendar" />-->
            &nbsp;
            &nbsp;
            <label id="nights">Nights:</label>
            <select name="nights" id="nights">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                <option value="13">13</option>
                <option value="14">14</option>
            </select>
            &nbsp;
            &nbsp;
             <label id="rooms">Rooms:</label>
            <select name="rooms" id="rooms">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
            </select>
            &nbsp;
            &nbsp;
            <label id="adults">Adults:</label>
            <select name="adults" id="adults">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
            </select>
            &nbsp;
            &nbsp;
            <label id="children">Children:</label>
            <select name="children" id="children">
                <option value="0">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
            </select>
            <input type="hidden" name="childrenages" value="" />
            <input type="hidden" name="hotelid" value="3687" />
            <input type="hidden" name="trr" value="BFFFFFD8EA3772" />
            <input type="hidden" name="culture" value="1" />
            <input type="hidden" name="culturename" value="en-US" />
            <input type="hidden" name="wtpid" value="1" />
            &nbsp;
            &nbsp;
            <input type="submit" id="submit" value="Check Availability" />
        </form>

问题:

  1. 当我将此网站上传到他们的服务器时,我是否在操作属性中放入"/res/vn4/avai.aspx?"?

  2. 为了获得查询字符串的最后一部分(children=0&childrenages=&trr=6FFFFD8E9AC12&culturename=en-US&wtpid=1),我需要使用类型为"hidden"的输入字段,并将其值设置为所需的值,对吗?我是否将childrenages值保留为空字符串(),因为在原始查询字符串(childrenages=&)中没有值?

  3. 当我在本地计算机上测试我的表单时,当我点击"检查可用性"时,我的查询字符串中没有得到checkindate=3/17/2012,但我得到了类似checkin=3%2F17%2F2012的信息。请注意,我使用jquery日期选择器作为签入字段。我确实理解%2F代表前斜杠,但我是这样保留它,还是必须将它改为前斜杠?如何将%2F更改为正斜杠?我上网查了一下,找不到答案。我尝试使用PHP urldecode语法,但效果不太好。也许,是我不知道如何使用它。

很抱歉我问了这么多问题!这是我第一次处理这样的情况。我从来没有做过这样的事,我很高兴我遇到了它,这样我就能学到更多的东西。

提前感谢!

Q1。当我上传。。。?

A1。不完全是。去掉"?"。您可能想要为您的avail脚本提供一个.php扩展,而不是.aspx。否则,使用标准服务器设置,它很可能在提供时不会通过php解析器。

Q2.为了让我得到。。。?

A2.对任何固定参数使用隐藏的输入字段,这些参数是可用脚本需要的,但用户不能输入或修改。隐藏字段值通常由生成表单所在页面的脚本写入HTML,但在某些情况下可能会动态插入客户端(通过javascript)。对于空值,请在HTML中设置value=""。请确保available.php脚本正确处理空参数和缺少的参数。

Q3.当我测试我的表格时。。。

A3、浏览器进行URL编码,防止URL中包含其他非法字符。客户端自己照顾自己。服务器端,在PHP中,超级全局变量$_GET和$_REQUEST已经被url解码。不要再使用urldecode(),否则可能会出现意外/危险的结果(请参阅此处的警告)。

另外,您不希望hotelid在表单中出现两次。