2012-11-01 5 views
2

폼이 있고 그 결과를 div에로드하려고합니다. 나는 이미 이것에 대한 몇 가지 주제를 검색했습니다. 그리고 나는이 하나가 작동한다고 생각했지만 그럴 수는 없습니다.div 안에 폼 액션로드하기

이 내 코드는 지금까지 있습니다 :

<script type="text/javascript"> $('#form').submit(function() { // catch the form's submit event 
$.ajax({ // create an AJAX call... 
    data: $(this).serialize(), // get the form data 
    type: $(this).attr('method'), // GET or POST 
    url: $(this).attr('action'), // the file to call 
    success: function(response) { // on success.. 
     $('#test').html(response); // update the DIV 
    } 
}); 
return false; // cancel original event to prevent form submitting }); </script> 

<DIV id="test"></DIV> 

<FORM id="form" name="pcc" method="post" action="http://wl.breedbandwinkel.nl/postcodecheck" onSubmit="return validatePcc(this);"> 
      <div class="one_third firstcols"> 
       <H4>Ik ben op zoek naar:</H4> 

     <DIV class="ff"><INPUT type="radio" class="pccrad radio" name="sub" value="alles-in-een-pakketten" id="pcc-alles-in-een-pakketten" onclick="$('#pcc-no').hide(); $('#pcc-fpcon').css('visibility', 'visible'); if($('#pcg').val() == '') $('#pcg').focus();"><LABEL class="left pcm" for="pcc-alles-in-een-pakketten" onmouseover="mpopup('Alles-in-&eacute;&eacute;n pakketten','Extra voordelig pakket met internet, digitale telefonie en/of digitale televisie.');" onmouseout="kill();">Alles-in-&eacute;&eacute;n pakketten</LABEL></DIV>   <DIV class="ff"><INPUT type="radio" class="pccrad radio" name="sub" value="internet" id="pcc-internet" onclick="$('#pcc-no').hide(); $('#pcc-fpcon').css('visibility', 'visible'); if($('#pcg').val() == '') $('#pcg').focus();"><LABEL class="left pcm" for="pcc-internet" onmouseover="mpopup('Internet','Altijd supersnel onbeperkt online tegen een vast bedrag per maand.');" onmouseout="kill();">Internet</LABEL></DIV>      <DIV class="ff"><INPUT type="radio" class="pccrad radio" name="sub" value="digitale-televisie" id="pcc-digitale-televisie" onclick="$('#pcc-no').hide(); $('#pcc-fpcon').css('visibility', 'visible'); if($('#pcg').val() == '') $('#pcg').focus();"><LABEL class="left pcm" for="pcc-digitale-televisie" onmouseover="mpopup('Digitale Televisie','Geniet van haarscherp digitaal beeld en geluid inclusief de gratis digitale programmagids.');" onmouseout="kill();">Digitale Televisie</LABEL></DIV> 
      </div><!-- end .one_third --> 
      <div class="one_third"> 
       <H4>Mijn postcode en huisnummer zijn:</H4> 

      <TABLE border="0" cellspacing="0" cellpadding="0"> 
       <TR> 
       <TD height="14" colspan="2">Postcode</TD> 
       <TD>Huisnr.</TD> 
       </TR> 
       <TR> 
       <TD width="51"><INPUT type="text" class="text" maxlength="4" size="5" value="" name="pcg" id="pcg" onKeyUp="autoTab(event,this,4,pcl);" onFocus="chBg(pcc,'pcg');" onBlur="chBg(pcc,'reset');" style="width: 41px;"></TD> 
       <TD width="46"><INPUT type="text" class="text" maxlength="2" size="2" value="" name="pcl" id="pcl" onKeyUp="autoTab(event,this,2,hn);" onKeyDown="backSpace(event,this,pcg);" onFocus="chBg(pcc,'pcl');" onBlur="chBg(pcc,'reset'); upperCase(event,this);" style="width: 26px;"></TD> 
       <TD width="36"><INPUT type="text" class="text" maxlength="6" size="4" value="" name="hn" id="hn" onKeyDown="backSpace(event,this,pcl);" onFocus="chBg(pcc,'hn');" onBlur="chBg(pcc,'reset');" style="width: 36px;"></TD> 
       </TR> 
      </TABLE> 

      <U class="dot small" onmouseover="popup('Waarom mijn postcode invullen?','Om te kunnen controleren welke abonnementen op uw adres leverbaar zijn hebben wij uw postcode en huisnummer nodig.<br>Uiteraard respecteren wij uw privacy. Deze gegevens worden niet opgeslagen.');" onmouseout="kill();"> 
      Waarom mijn postcode invullen?</U> 
      </div><!-- end .one_third --> 
      <div class="one_third lastcols"> 
       <INPUT type="submit" name="submit" value="Vergelijk de aanbiedingen op uw adres" class="button"> 
      </div><!-- end .one_third --> 
      </FORM> 

그래서 나는이 작동하지 않는 것을 알아 냈어. 액션 URL ( http://wl.breedbandwinkel.nl/postcodecheck)의 결과를 에 표시하고 싶습니다. 현재 iframe 내에서이 작업을 수행하고 있지만 '전문가'모양이 아닙니다. 나는 알지 못하면 충분한 정보를 주었으면 좋겠다.

+0

왜 연결하는 것이 다른 예를 작동하지 않았다 : PHP에서 게시물 코드 검사기를 가정하면 ajaxActions.php 파일은 다음과 같이 보일 것입니다, GET 요청을 받아 들여? jquery js 파일을 스크립트로 포함 시켰습니까? HTML의 헤더에 을 작성하십시오 (물론 따옴표와 함께 올바르게 형식을 지정하십시오). ...) –

+0

나는 당신이 나에게 말한 것을 방금했으나 여전히 작동하지 않습니다. 내가하고있는 일의 예를 보려면 여기를보십시오. http://www.kabeladviseur.nl/test/ – Mark

+0

Alles-in-één pakketten을 클릭하고 " 우편 번호 "1234 AA와"Huisnr. " 1. – Mark

답변

1

가장 중요한 점은 웹 페이지가 http://wl.breedbandwinkel.nl에서 실행되지 않는 경우 대부분의 모든 브라우저에서 크로스 사이트 스크립팅을 사용하지 않기 때문에 AJAX 호출이 전혀 실행되지 않습니다. bar.com에서 제공되는 페이지에서 foo.com에 대한 AJAX 요청을 할 수 없습니다. 이것을 피하기 위해, 내가 일반적으로하는 일은 "bar.com/ajaxActions.php"와 같은 파일을 작성한 다음 PHP 스크립트를 사용하여 GET 또는 POST 요청을 외부 사이트에 작성하는 것입니다. 결과를 검색하고 나면 해당 결과를 표준 출력으로 인쇄 한 다음 AJAX 요청의 결과가됩니다.

내가 할 다른 것은 <form> 태그의 "method"와 "action"속성을 도려내 jQuery로 작성하려는 AJAX 요청에 넣는 것입니다. 같은 대신 제출 버튼에 onclick을() 수신기를 사용하여 다음

<INPUT type="submit" name="submit" onClick="doAjaxRequest()" value="Vergelijk de aanbiedingen op uw adres" class="button"> 

을 그 기능에 우선 자리에 당신이 이미 가지고 코드를 사용 :

<script type="text/javascript"> 
function doAjaxRequest() { 
    $.ajax({ // create an AJAX call... 
     data: $("#form").serialize(), // get the form data 
     type: GET, // GET or POST 
     url: "ajaxActions.php", // the file to call -- postcodecheck if you're on that same domain, otherwise ajaxActions.php 
     success: function(response) { // on success.. 
      $('#test').html(response); // update the DIV 
     } 
    }); 
} 

마지막으로, 만약 ' 동일한 도메인에 있지 않다면 GET 요청 (file_get_contents() 사용) 또는 POST 요청 (cURL 사용)에 대한 PHP 코드를 찾으십시오. 또는 PHP를 사용할 수없는 경우 선택한 백엔드 언어를 사용하십시오.

$response = file_get_contents("http://wl.breedbandwinkel.nl/postcodecheck?pcg=" . $_GET["pcg"] . "&pcl=" . $_GET["pcl"] . "&hn=" . $_GET["hn"]); 
print $reponse; 
+0

커플 사이드 노트 : Google 크롬의 개발자 도구를 사용하여 코드를 단계별 실행하고 중단 점을 설정하는 등의 작업을 수행 할 수 있습니다. 둘째, cURL은 GET, POST 및 PUT을 비롯한 모든 유형의 HTTP 요청을 처리 할 수 ​​있지만 GET을 수행하려는 경우 설정하기가 더 어렵습니다. –

+0

실제로 내 웹 페이지는 http://wl.breedbandwinkel.nl/에서 실행되지 않습니다. 그것이 회사에서 저에게 준 우편 번호 확인 링크입니다. 그들은 iframe 코드를 제공했지만 정말 엉터리입니다. 당신이 썼을 때 나는 해결책을 시도 할 것입니다 (그것은 유망 해 보입니다). – Mark

+0

제안대로 테스트했지만 여전히 작동하지 않습니다. 그런데 회사는 포스트 코드 체커를위한 XML API 문서를 나에게 주었다. 그래서 나는 내 자신의 포스트 코드 체커를 만들 수있다. 그러나 그 문서를 통해 나는 어디서 어떻게 시작해야하는지 정말로 모른다. 나는 XML API에 대해 아무 것도 모른다. XML API 문서는 다음에서 찾을 수 있습니다. http://www.breedbandwinkel.nl/xml/api/documentatie – Mark