我有一個預訂表單和表單操作應該是: https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~ 但它不工作。當我提交表格時,一切從?被忽略。表格操作無法使用特殊字符(&)
作爲一個解決方案,我命名的第一個字段作爲
名= 「smsworld〜availbox〜& RAD」
這幾乎是工作,唯一的問題是現在,當我提出我的形式,「&」正在由%26切換。
,我應該得到的網址是:
有什麼建議?
我有一個預訂表單和表單操作應該是: https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~ 但它不工作。當我提交表格時,一切從?被忽略。表格操作無法使用特殊字符(&)
作爲一個解決方案,我命名的第一個字段作爲
名= 「smsworld〜availbox〜& RAD」
這幾乎是工作,唯一的問題是現在,當我提出我的形式,「&」正在由%26切換。
,我應該得到的網址是:
有什麼建議?
感謝所有的答覆,但我找到了一個使用幾行javascript的解決方案。
$('。submit-btn')。on('click',function(e){
var checkinDate = $('#checkAvailDate').val(), guests = parseInt($'#checkAvailAdults').val()) + parseInt($('#checkAvailChildren').val()); var formAction = 'https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~&RAD=10%2F15%2F2014&nights=6&RCA=' + guests; var win = window.open(formAction, '_blank'); win.focus(); e.preventDefault();
});
我不格式化所有字段沒有完成,但即使是這樣,非常感謝所有幫助:)
您是使用GET還是POST(窗體上的方法屬性)?如果爲GET,則操作中的URL不能包含查詢字符串參數。嘗試使用POST代替。
我剛剛爲你做了一個小提琴,它有兩種形式。一個使用GET(不工作),另一個使用POST(似乎工作):
<form action="https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~" method="get">
<input type="submit" value="Submit GET" />
</form>
<form action="https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~" method="post">
<input type="submit" value="Submit POST" />
</form>
什麼您看到的是URL編碼。 URL中的某些字符是保留字符,因此無法制作包含該字符的URL部分,否則URL將被誤解。 &符是其中的一個字符。
考慮一下帶有查詢字符串的URL看起來像:
http://test.com?name1=value1&name2=value2
正如你可能已經知道,查詢字符串變量由&符號分隔。 URL編碼將一組字符替換爲保留字符,以防止對URL的錯誤解釋。
換句話說,你要求的URL是不可能的。您GET數據將被解釋爲:
$_GET = array(
'smsworld~availbox~' => '',
'RAD' => '10/15/2014', //An additional index created by the unencoded ampersand
//etc...
);
如果額外RAD
指數是你的真實意圖,這是不可能這樣。您應該使用隱藏字段來將RAD
作爲附加查詢字符串變量添加。僅用於每個查詢字符串變量的一個表單字段。