2014-10-08 7 views
0

예약 양식이 있으며 양식 작업은 다음과 같아야합니다. https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~ 하지만 작동하지 않습니다. 양식을 제출하면 모든 항목이 표시됩니까? 그냥 무시됩니다. 솔루션으로 양식 작업이 특수 문자 (&)로 작동하지 않습니다.

, 나는

이름 =으로 첫 번째 필드 명 "smsworld을 ~ availbox는 ~ & RAD는"

거의 일하고

, 유일한 문제는 지금이 내가 제출할 때 내 "&"이 (가) % 26 (으)로 전환되었습니다.

https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~&RAD=10%2F15%2F2014&RDD=10%2F21%2F2014&nights=3&RCA=2

하지만 그 대신, 내가 받고 있어요 : 내가 가야

URL은 https://reservations.posthotel.com/smsworld/wc.dll?smsworld~availbox~%26RAD=10%2F15%2F2014&RDD=10%2F21%2F2014&nights=6&RCA=2

어떤 제안?

답변

0

모든 답장을 보내 주셔서 감사합니다. 그러나 몇 줄의 자바 스크립트를 사용하여 해결책을 찾았습니다.

$ ('. submit-btn').('클릭', 기능 (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(); 

});

아직 모든 필드의 서식을 함께 할,하지만 그렇다하더라도, 모든 도움을 주셔서 대단히 감사합니다 :)

아니에요
1

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> 

http://jsfiddle.net/n80e6Lzv/

1

당신은 무엇을 관찰하고하는 URL 인코딩입니다. URL의 특정 문자는 예약 된 문자이므로 해당 문자가 포함 된 URL의 일부를 만들 수 없으며 그렇지 않으면 URL이 잘못 해석됩니다. 앰퍼샌드는 그 캐릭터 중 하나입니다.

는 쿼리 문자열과 URL의 모습을 생각해 보면 아마 이미 알고으로

http://test.com?name1=value1&name2=value2

는 쿼리 문자열 변수는 앰퍼샌드로 구분됩니다. URL 인코딩은 URL의 오역을 방지하기 위해 예약 된 문자에 대한 문자 그룹을 대체합니다.

즉, 요청하는 URL은 불가능합니다. 귀하의 GET 데이터로 해석 될 것입니다 : 여분의 RAD 지수는 실제 의도라면

$_GET = array(
    'smsworld~availbox~' => '', 
    'RAD' => '10/15/2014', //An additional index created by the unencoded ampersand 
    //etc... 
); 

, 즉,이 방법은 불가능합니다. 추가 쿼리 문자열 변수로 RAD을 추가하려면 숨겨진 필드를 사용해야합니다. 각 쿼리 문자열 변수에 대해서만 하나의 양식 필드.

관련 문제