2010-12-28 11 views
1

ここに質問があります。私はいくつかのデータを収集するこのPHPフォームを持っています、ポストされた後にデータが解析されてURLが構築されます。このURLが構築された後、この新しく構築されたURLを持つユーザー用の新しいブラウザーウィンドウを開きたいと思います。PHPフォームを投稿した後、URLが形成されたブラウザウィンドウを開く

これを実際にどのように行うことができますか?これはjavascriptでしかできないものですか?もしそうなら...どう?

私はすでにコードを用意しており、フォームを投稿した後にURLを構築するというテストをしましたが、今はURLを使って新しいウィンドウを開くだけです。

+0

ポップアップブロッカーは、その振る舞い好きではないかもしれません。私はターゲットを適切に設定したハイパーリンクをエコーし​​ます。 – Novikov

+0

私は@Novikovに同意します。新しいウィンドウを開くと、ユーザーが迷惑を掛けます。なぜ 'header'を使ってリダイレクトをしないのですか?また、新しいウィンドウの目的は何ですか? –

+0

クライアントの要件は、それがトータルリダイレクトであるため、新しいウィンドウが表示されることです。私は代わりにハイパーリンクを提供したいが、ポップアップが現れなければならない。また、フォームを投稿した後に現在のページを置き換える方法はありますか?同じウィンドウ内で新しいURLにリダイレクトするときのように。 – Gotjosh

答えて

2

を確認してください。

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

2番目の、新しいウィンドウを開く必要がある場合は、JavaScriptを使用しなければなりません。あなたはJavaScriptのみであることを行うことが可能であり、同じセッションでは、PHPを使用して新しいウィンドウを開くことができません

+0

これは私が試してみるといつものエラーです:警告:ヘッダー情報を変更できません - すでに送信されたヘッダー – Gotjosh

+0

HTTPヘッダーを送信する前に出力を行うことはできません。リダイレクトしたい場合は、 '<?php'の前にある空白文字を含む何もエコーすることはできません。 –

0

Js window.open( "http://www.newurl.com"、 "mywindow")を使用できます。より多くの詳細は、あなたがHTTPヘッダでそのURLに現在ウィンドウを送信することができ、このリンクhttp://www.javascript-coder.com/window-popup/javascript-window-open.phtml

+0

私は運がないPHPスクリプトを使ってこれを試してみましたが、PHPの実装例を投稿してもらえますか? – Gotjosh

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

、ページを再読み込みとJavaScriptを初期化AJAX要求

  • を使用して2つのシナリオ

    1. があることができ
  • 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/JavaScriptコードを使用することができます。

    <script> 
        location.replace("<?php echo $url; ?>"); 
    </script> 
    
    関連する問題