2012-03-23 23 views
1

親愛なるすべての専門家はdocument.writeの文字列とPHPの文字列を比較する際に問題がありました。var_dump(変数)を使用すると文字列が同じでないことがわかりますエコーの価値は同じですが、それを動作させることを知っている人はいますか?document.writeとphpの文字列の文字列を比較できません

$resolution_width = "<script type='text/javascript'> document.write(window.screen.width); </script>"; 

$resolution_height = "<script type='text/javascript'>document.write('#'+window.screen.height+'#'); </script>"; 


$screen_width=$resolution_width; 
$screen_height=str_replace("#","",$resolution_height); 

echo var_dump($screen_width); 
$str='1280'; 
echo "<BR>"; 
echo "<BR>".var_dump($str); 

if($screen_width=='1440'){ 
    $width=1440; 
    echo $width; 
} 
elseif($screen_width=='1360'){ 
    $width=1360; 
    echo $width; 

} 
elseif($screen_width=='1280'){ 
    $width=1280; 
    echo $width; 

} 
elseif($screen_width=='1152'){ 
    $width=1152; 
    echo $width; 
} 
elseif($screen_width=='1024'){ 
    $width=1024; 
    echo $width; 
} 
elseif($screen_width=='800'){ 
    $width=800; 
    echo $width; 
} 

これは私が出力しようとすると私の結果ですが、それはすべての比較で偽です。 私はこの文字列は同じだと思いますが、それはおそらく異なる変換です。

マイ結果:

string(78) "1280" 
string(4) "1280" 
+3

のドキュメントを参照してください。これは基本的に不可能です:PHPはサーバー上で動作し、JavaScriptはクライアントで動作します。 JavaScriptからAjaxコールを別のPHPスクリプトに戻す必要があります。 –

+0

あなたは私に方法を教えてもらえますか?それでは、本当に新しいですよね。 –

+1

PHPでJavaScript式を評価することはできません。 PHPはサーバ上で動作するのに対して、Javascriptはブラウザ上で動作します。クライアント側の解像度を知りたい場合は、javascriptを実行して解像度をチェックし、解像度をパラメータとしてPHPファイルにリダイレクトする小さなhtmlファイルを作成します。 – Yaniro

答えて

1

それは、Webブラウザになるまで<script>タグ内のコードが実行されません。 phpはWebブラウザに送る文書を生成します。その後、Webブラウザはjavascriptを実行します。

PHPコードの画面幅を把握する方法はありません。ただし、javascriptとcssを使用して、ページが読み込まれた後の画面幅に基づいてページレイアウトを変更することができます。

画面の幅に基づいてページを書式設定する場合は、Twitter Bootstrapを使用することをおすすめします。さまざまな画面サイズをすべて処理すると、髪の毛が出ることがあります。ブラウザの互換性の問題やその他の複雑な問題は、最初は明らかではありません。 Twitterの人々はすでにそれらを解決し、このフレームワークを共有しているため、作業を繰り返す必要はありません。

ブートストラップフレームワークを使用しない場合は、CSS Media Queriesを使用してください。

ブラウザの幅を別の理由でサーバーに送信する必要がある場合は、ajaxを使用するとよいでしょう。 2つのPHPスクリプトが必要です。ページを生成するものと、ajax要求を処理するもの。あなたはjQueryのを使用しているなら、あなたはこのようなAJAXリクエスト書くことができます。

$(function() { 
    $.get('script_that_will_proccess_ajax.php', { width: window.screen.width, height: window.screen.height }) 
    .success{ function { 
     alert('it worked'); 
    }); 
}); 

jQuery getjQuery post

+0

だから私は右のajaxを使用する必要がありますか?とにかくどうすれば

関連する問題