No.2ベストアンサー
- 回答日時:
こんにちは。
Ajaxという方法を使えば、画面遷移を起こさずにpostすることが可能です。
ただ、見る人が見ればどっちにしろ何をしてるかなんてわかってしまいます。
下のサンプルを参考にしてください。
access.jsを読み込むと非同期でaccess.phpに値をpostします。
==== HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>javascriptからphpへ変数</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">google.load('jquery','1');</script>
<script type="text/javascript" src="./access.js"></script>
<style type="text/css">
</style>
</head>
<body>
</body>
</html>
==== access.js
$().ready ( function() {
$.post (
'./access.php',
{ w : screen.width, h : screen.height }
);
});
ありがとうございます!
まさにこういうことがやりたかったです!
jQueryって便利ですねー(汗
jqueryに書かれていることって基本、javascriptで自分で実現できるものなんですか?
jQuery.post() 関数など・・
それと、このgoogle cdnの指定の仕方?だとデフォでコードが圧縮されてるんですか・・?(読み込みが早いのか
すみません質問ばかりで・・(;´Д`)
回答してくださって非常に感謝しています。
本当にありがとうございました。
No.4
- 回答日時:
こんにちは。
そのままPOSTすれば良いような気がしますが文字化けというのはどのような表示になっていますか?
受け取り側のPHPでurldecodeしてあげれば日本語の文字列に戻ると思います。
先の回答の送信パラメータにアクセス解析で必要な値を設定してあげればクライアントからしか取得できないデータをサーバ側で取得することが出来ます。
もちろんパラメータに乗ってきたq=%E3%81%AC%E3%82%8B%E3%81%BDもきちんと日本語で取得できました。
この回答への補足
自作という言葉の場合、「閾ェ菴・」というのに文字化けします・・・
var refe=document.referrer;
var pos=refe.indexOf("&q=")+3;
var pos1=refe.indexOf("&",pos);
var word=refe.substring(pos,pos1);
$(document).ready ( function() {
$.post ('./access.php',{ w : screen.width, h : screen.height,r:word});
});
こんな感じでワードだけを抜き出してポストして、
urldecode($_POST[r]) でデコード?してるのですが、これではダメなのでしょうか・・?
$.post ('./access.php',{ w : screen.width, h : screen.height,r:decodeURI(word)});
これでポストして、urldecode($_POST[r])で取り出すと、「・蒔霑」というのに文字化けしました(´Д`)
No.3
- 回答日時:
こんにちは。
>jqueryに書かれていることって基本、javascriptで自分で実現できるものなんですか?
>jQuery.post() 関数など・・
JavaScriptのいろいろな機能を簡単に使えるように実現してくれているのがjQueryですのでjQueryを利用しなくても同じようなことは実現できます。
最後にサンプルを記載しますが、jQueryを併用すれば数行で済むものがちょっと面倒な記述が必要になります。
(ブラウザ間の差異も吸収してくれているため)
jQueryの利用が許される環境であれば使用することでコーディングの作業が減ります。
(処理内容によっては処理が重たくなる可能性がありますが)
>それと、このgoogle cdnの指定の仕方?だとデフォでコードが圧縮されてるんですか・・?(読み込みが早いのか
そうですねgzipという形で圧縮されてきます。
ただ、完全なローカルでの確認が出来ません。(外部(google)に接続されるため)
あとはバージョン指定しなくても最新版を常に利用できます。(もちろん過去のバージョンも指定可能)
==== jQueryを利用しないでNo.2のサンプルを実行する
(エラー処理等省いているところがあります)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>javascriptからphpへ変数</title>
<script type="text/javascript">
window.onload = post;
function post() {
var http = create();
http.open ( 'POST', './access.php', true );
var send = 'w=' + screen.width;
send += '&h=' + screen.height;
http.setRequestHeader ( 'Content-Type' , 'application/x-www-form-urlencoded; charset=UTF-8' );
http.send ( send );
}
function create() {
if ( window.ActiveXObject ) {
try {
return new ActiveXObject ( 'Msxml2.XMLHTP' );
} catch ( e ) {
try {
return new ActiveXObject ( 'Microsoft.XMLHTTP' );
} catch ( e2 ) {
return null;
}
}
} else if ( window.XMLHttpRequest ) {
return new XMLHttpRequest();
}
return null;
}
</script>
<style type="text/css">
</style>
</head>
<body>
</body>
</html>
この回答への補足
わざわざ回答ありがとうございます!
jQueryが内部的にすごく簡単にクロスブラウザを実現してくれてるのですね( ・∀・)
それにしてもIEのせいでいつも苦労しますね・・(汗
この件とは関係ないのですが、検索エンジンなどで「ぬるぽ」などを調べた場合
http://www.google.co.jp/search?rlz=1C1AVSJ_enJP4 …
&q=%E3%81%AC%E3%82%8B%E3%81%BD
この部分が「ぬるぽ」だと思うのですが、これを日本語でpostにするのはどうしたらいいのでしょうか・・?
decodeURI(document.referrer)で表示するとうまく日本語を表示してくれるのですが、これをphpに引数としてpostすると文字化けします・・
ホームページなどは全てSJISです。
<script type="text/javascript">の部分にcharset="shift-jis"などをつけてもうまくいきません・・
php.iniの設定は特にいじっていません。
サーバーはロリポップの105円のです。
今自作のアクセス解析を作ろうと奮闘しております。
もし宜しければ回答よろしくお願いいたします・・。
No.1
- 回答日時:
こんにちは。
以下のような感じでPHPに値を渡せます。
==== access.js
var width = screen.width;
var height = screen.height;
document.write ('<script type="text/javascript" src="./access.php?w=' + width + '&h=' + height + '"></script>' );
==== 解析対象のページ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>javascriptからphpへ変数</title>
<style type="text/css">
</style>
</head>
<body>
<script type="text/javascript" src="./access.js"></script>
</body>
</html>
==== access.php
<?php
$width = $_GET['w'];
$height = $_GET['h'];
$str = 'Width=' . $width . ',Height=' . $height ."\r\n";
$fp = fopen ( './log.log', 'a' );
fwrite ( $fp, $str );
fclose ( $fp );
?>
この回答への補足
access.phpに引数をつけない、postの方法では無理なんでしょうか?
getElementById("formのID").submit() みたいな方法で・・
よくわからないんですが(汗
URLに引数をつけていると、そのファイルがアクセス解析のためのものだとわかってしまいそうなので、推測されないような方法がいいです(汗
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのWebアプリ作成
-
file_get_contents関数なのですが
-
日付と年月日を選択するコード...
-
<form action="bbs.php" method...
-
conf.php設定について
-
PHPで地域名のみ変更
-
前後の全角スペースを削除する...
-
XAMPP1.7.1上でPHPを実行すると...
-
phpの画面表示が真っ白です
-
charset=UTF-8なのにShift-JIS...
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
リンク先を隠す方法はないでし...
-
copy() で属性保存
-
onedrive にexcelファイルをア...
-
PHP session_destroyとsession...
-
「クラス関数」「メンバ関数」...
-
別PHPファイルに変数を渡す
-
VBSの「MsgBox」について
-
3つ以上の論理積は利用可能なの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字化けについて
-
日付と年月日を選択するコード...
-
初心者で数当てゲームを作って...
-
htmlのエラーについて(デバッグ)
-
phpの画面表示が真っ白です
-
前後の全角スペースを削除する...
-
XAMPP1.7.1上でPHPを実行すると...
-
mb_convert_variablesで変換出...
-
これまで遷移してきたサイト内...
-
php エラー
-
XMLパースエラー回避方法
-
URLエンコーディングで悩ん...
-
【PHP?】header("location : ...
-
phpでfopen()やfputs()が使えない
-
PHPの勉強中の初心者です。
-
PHPプログラムの間違い
-
php ログイン
-
PHP(smarty)についての質問(文...
-
複数の文字列をファイルに書き...
-
<form action="bbs.php" method...
おすすめ情報