2012-02-25 3 views
1

내 PHP 섹션에 문제가 있습니다.open colorbox from php

나는 등록 양식 .php가 있으며 iframe colorbox에 제출 한 후 메시지를 보내고 싶습니다. 나는 지금까지 등록 양식 .php에 포함 된 별도의 응답 .php가 있습니다. 지금까지는 한 번 응답 .php가있는 테이블에 표시됩니다. 그게 그렇게 좋지 않아보고 싶지 않아 colorbox에서 열기를 원합니다.

저는 그 사업을 처음 접했고 오랫동안 답변을 검색했지만 은 성공하지 못했습니다.

그래서 저를 도울 수있는 사람이 있습니다. 내 생각은 포함 - 응답 한 .php 대신 응답 .php로 URL을 반향시키는 것이었지만 작동하지 않습니다. 다음으로 생각한 것은 클래스의 iframe 링크를 HTML 몸체처럼 URL을 사용하여 이용 약관에 대한 colorbox를 사용하는 것과 같은 것입니다.

도움을받을 수있는 사람이 있다면 정말 감사하겠습니다. 감사.

+0

사용중인 코드를 표시 할 수 있습니까? 어쨌든, 당신은 화재 (onsubmit, onclick ..) js 이벤트가 필요할 수도 있고 그것에 colorbox을 첨부 .. 그냥 추측, 비록 –

답변

1

음 ... 당신은 클라이언트와 서버 측 작업을 혼란스럽게합니다. colorbox는 서버가 아닌 클라이언트에서 실행되는 것입니다. 따라서 페이지의 동작을 변경해야합니다.

양식이 제출 된 버전 1은 문서가로드가 완료 일단 colorbox을 열 출력 자바 스크립트 코드로 응답 PHP 파일을 사용합니다. 이런 식으로 뭔가 :

<?php if (isset($_POST['submitted'])): ?> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     // open your colorbox here 
    }); 
</script> 
<?php endif; ?> 

버전 2

는 AJAX 솔루션이 표준 양식을 교체합니다. 제출 버튼을 클릭하면 jQuery를 사용하여 respone PHP 파일에 AJAX 요청을 수행합니다. 이렇게하면 요청이 처리되는 동안 colorbox를 표시 할 수 있고 완료되면 colorbox를 숨기거나 다른 것을 보여줄 수 있습니다.

당신은 SO 또는 jQuery를 문서에 하나 여기 jQuery로 AJAX 요청을 수행하는 방법에 대한 지침의 부하를 찾을 수 있습니다 http://api.jquery.com/jQuery.post/

버전 3

못생긴 솔루션은 자바 스크립트를 사용하는 것 iframe이 포함 된 색상 상자를 열고 <form> 태그에 target="iframename "을 사용하여이 iframe에 양식을 제출하면됩니다. 이는 사용자가 원하는 것을 가장 가까운 해결책 일 수 있지만 모든 가능성 중에서 가장 추한 것입니다.)

+0

안녕, gerade gerade, dass sie aus dresden kommen. 전쟁은 일렉트로니카에서 일어났습니다. 그중에서도 미국인과 미국인이 서로 짝을 지어 미국인과 결혼했습니다. 그 중에서도 그저 그물에 얽매일 뿐이므로 그 문제를 해결하는 데 어려움을 겪을 수밖에 없습니다. vielen dank and beste grüße aus berlin – John

+0

음 ... 그것은 웹 사이트이며 국제 정의에 의한 것입니다. 그리고 SO는 모든 사람들이 자신의 문제에 대한 해결책을 찾을 때 탐색 할 수있는 일련의 질문 및 답변이기 때문에 모든 사람이 지식으로부터 이익을 얻을 수 있도록 영어를 작성하는 습관이 있습니다. –

1

당신은 내 질문에 대답을 위해,

$("#myForm").submit(function(){ 
var formData = $(this).serializeArray(); 
$.ajax({ 
       'type':'post', 
       'data':formData , 
       'url':'action-page-url.php', 
       'cache':false, 
       'success':function(r){ 
          $("body").append("<div id='response'></div>"); 
          $("#response").hide().html(r).colorbox(); 
          } 
     }); 
return false; // To override non-ajax submitting 
}); 
1

좋아 ..

덕분에 아약스를 사용하여 양식을 제출하고 아약스 호출 페이지에 표시하고, 동일한 페이지에 colorbox에서 해당 메시지를 표시 할 수있는 메시지를 작성할 수 있습니다.

$("#link").colorbox({ inline:true, href: "#msg"}); 
$('input[type="submit"]').click(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "form.php", 
     data: $('intpu[type="text"]').serialize(), 
     success: function(data){ 
      $("#msg").html(data); 
      $("#link").click(); 
      return false; 
     } 
    }); 
    return false; 
}); 

와 HTML 코드

<form name="exam" method="post"> 
     <input size="60" type="text" name="quote" /> 
     <input type="submit"> 
</form> 
<a id="link" style="display:none"></a> 
<div id="msg" style="display:none;"></div> 

나는 그것이 구현하는 가장 좋은 방법은 아니라고 생각 :

내가 거의 같은 문제를 가지고있는 사람에서 아약스 솔루션에 대한 코드를 발견 응답 메시지. 페이지의 소스 코드를 보는 모든 사람이 응답 메시지를 읽을 수 있습니다. 나는 PHP를 첫 번째 버전과 같은 서버 숨겨진 버전을 선호하지만 doesnt 일. 내가 제출 클릭 후 colorbox하지만 응답에 통합 된 #MESSAGE 열립니다

$.colorbox({iframe:true, href:"msgToUser.php" 

같은 선택없이 colorbox를 열 때. PHP 파일이 표시되지 않습니다. 또 다른 문제는 양식을 제출할 때 항목이 누락되어 오류가 발생하므로 colorbox도 열립니다.

베를린에서 최고의 소원, 독일.

+0

약간의 충고 : 당신 자신의 질문에 대답해도 괜찮습니다. 하지만 실제로는 대답 일뿐입니다. 추가 질문이있는 경우 초기 게시물을 편집하고 새 질문을 추가하거나 다른 질문을 만드십시오. 이것은 포럼이 아니며 답이 더 혼란 스럽기 때문에 더 많은 질문을 게시합니다. :) –