2010-12-28 2 views
1

그래서 여기에 질문이 있습니다. 데이터를 게시 한 후 URL을 구성한 후 일부 데이터를 수집하는 PHP 폼이 있습니다. 이 URL이 생성 된 후 새로 생성 된 URL을 가진 사용자를 위해 새 브라우저 창을 열고 싶습니다.PHP 폼을 게시 한 후 URL이 형성된 브라우저 창을 엽니 다.

어떻게 실제로이 작업을 수행 할 수 있습니까? 이게 자바 스크립트로만 할 수있는 것입니까? 그렇다면 ... 어떻게?

이미 코드를 가지고 있으며 폼을 게시 한 후 URL을 구성하는 코드를 테스트했습니다. 이제는 URL이있는 새 창을 여는 데 문제가 있습니다.

+0

팝업 차단기가 동작처럼하지 않을 수 있습니다. 나는 목표가 설정된 하이퍼 링크를 적절히 에코합니다. – Novikov

+0

@Novikov에 동의합니다. 새 창을 열면 사용자를 괴롭 히게됩니다. 'header'를 사용하여 리디렉션을 수행해보십시오. 또한 새 창의 목적은 무엇입니까? –

+0

클라이언트 요구 사항은 전체 리디렉션이기 때문에 새 창이 나타납니다. 대안으로 하이퍼 링크를 제공 하겠지만 팝업이 나타나야합니다. 또한 양식을 게시 한 후 현재 페이지를 바꿀 수있는 방법이 있습니까? 같은 창에서 새 URL로 리디렉션 할 때와 마찬가지입니다. – Gotjosh

답변

2

을 확인하기위한 당신은 HTTP 헤더와 함께 해당 URL에 현재 창을 보낼 수 있습니다 : 두 번째, 새 창을 열어야하는 경우

<?php 
//your code that builds $url 
header("Location: $url"); 
?> 

는, 당신은 자바 스크립트를 사용해야합니다.

+0

이것은 내가 시도 할 때마다 오류입니다. 경고 : 헤더 정보를 수정할 수 없습니다. - 이미 보낸 헤더 – Gotjosh

+0

HTTP 헤더를 보내기 전에 출력 할 수 없습니다. 리다이렉트하고 싶다면'

0
<html> 
<head> 
<script type="text/javascript"> 
function newWindow() { 

    window.open("http://www.newurl.com", "", "width=400,height=500,top=50,left=280, 
    resizable,toolbar,scrollbars,menubar,"); 
    } 
    </script> 
</head> 
<body> 
    <input type=submit name="submit" value="Preview" onClick="newWindow();"> 
</body> 
</html> 
0

당신은 같은 세션에서 PHP는 자바 스크립트 그렇게 할 수있는 사용하여 새 창을 열 수 없습니다,이 AJAX 요청

  • 새로 고침 페이지를 사용하여 두 가지 시나리오

    1. 하고 자바 스크립트
    2. 을 초기화 할 수 있습니다
  • 1

    다음은 인라인 JS (try it)를 포함한 HTML의 예입니다.

    당신의 PHP 스크립트에서
    <form 
        method="POST" 
        action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi" 
        onsubmit="open('',this.target=new Date().getTime(),'menubar=yes,location=yes,resizable=yes,scrollbars=yes,width=800,height=600')"> 
        <!-- Text boxes, etc. go here ---> 
        <input type="submit" value="Submit"> 
    </form> 
    

    , 당신이 (앞에 아무 공백 또는 다른 문자로) 사용할 수 있습니다 :

    우리는 양식이 브라우저의 팝업 차단을 피하기 위해 제출 새 창을 열 필요가 그 실패
    <?php 
    
    // Your code that determines the URL; don't send any output from it! 
    
    header("Location: $url"); 
    

    , 당신은 유사한 효과를 얻을이 PHP/자바 스크립트 코드를 사용할 수

    <script> 
        location.replace("<?php echo $url; ?>"); 
    </script> 
    
    관련 문제