やりたいこと{
「Javascript で」フォームに値を入れて、その値をPHPに読みこんでPHPを実行。
ただしPHPで実行するのは サーバー上のファイルに書き込むこと だけなので、ブラウザ上でPHPファイルへと遷移したくない。}
こういう条件でコードを書いていて(formを使わずAjaxでphpに値を渡す方法は難しいので断念)、
formを普通にsubmitしてPHPファイルへと遷移する場合は 正しくサーバー上のファイル書き込みができたのですが、
遷移しない場合のやりかたがうまくいきません。ご教示願います。
↓jsファイル(一部)。 HiscoreSave.phpというのが、ファイルに書き込むPHPファイルです
//hiscoreはあらかじめ定義・代入
var form = document.createElement( 'form' );
document.body.appendChild( form );
var input = document.createElement( 'input' );
input.setAttribute( 'type' , 'hidden' );
input.setAttribute( 'name' , 'name' );
input.setAttribute( 'value' , hiscore);
form.appendChild( input );
// form.setAttribute( 'action' , 'js/HiscoreSave.php' ); //ここをコメントしない時は遷移する
form.setAttribute( 'method' , 'post' );
form.setAttribute( 'onsubmit' ,'NoJump(); return false;');//NoJump()は下記
form.submit();//送信
function NoJump(){
var contact_form_contents = {
sender_name : $(':hidden[name="name"]').val()
};
$.ajax({
type: 'POST',
url: 'js/HiscoreSave.php', // 実行するPHPの相対パス
cache: false,
data: contact_form_contents, // PHPに渡すデータ。
success: function(html) {
//document.body.innerHTML += "<?php require 'js/HiscoreSave.php'; ?>";//有ってもなくても同じ
},
error: function() {
// エラーが返ってきた場合の処理
}
});
}//NoJump()終わり
//ちなみに、↓がHiscoreSave.php(全文)
<?php
$PhpHisc = $_POST['sender_name'];
$f=fopen('../saves/hiscore.txt',"ab+");
if (flock($f, LOCK_SH)){
ftruncate($f, 0);
fwrite($f, $PhpHisc);//書き換える
print($PhpHisc);//デバッグ用
}
else {print('ハイスコア更新書き込み失敗');}//デバッグ用
fclose($f);
?>
Ajaxって何かダウンロード等しなくてもJavascriptのコードに ただ書けば実行できるものなのでしょうか?Ajaxを使ったことがなく、そのへんが調べてもまったくわからなくて…(^_^;)
No.2ベストアンサー
- 回答日時:
ちなみにライブラリとかつかわなくてもpostで送りっぱなしでよいならこんな感じ
<script>
function createXMLHttpRequest(){
if( window.XMLHttpRequest ){
return new XMLHttpRequest();
}else if( window.ActiveXObject ){
try{
return new ActiveXObject( "Msxml2.XMLHTTP" );
}catch(e){
return new ActiveXObject( "Microsoft.XMLHTTP" );
}
}
return null;
}
function sendPostData( serverURL, param){
var ajax = createXMLHttpRequest();
ajax.open( "POST", serverURL );
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//「追加」はここ
ajax.send( param );
}
function test(){
var hiscore=100;
sendPostData("HiscoreSave.php","name="+hiscore);
}
</script>
<input type="button" value="test" onclick="test()">
戻り値をつかわないとユーザーが不安になるので「追加」のところに
ajax.onreadystatechange=function(){
if(( ajax.readyState == 4 ) && ( ajax.status == 200 )){
document.getElementById("hoge").innerHTML=ajax.responseText;
}
}
のような記述をしておくと更新されたことがわかってベター
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームのvalueに配列を格納す...
-
this.formがundefined
-
HTML?JavaScript? INPUTタグ...
-
javascriptでASPにデータを渡す
-
iframe内のformをサブミットす...
-
別ウィンドウへのsubmitの挙動...
-
ホームページ上で、必要事項(...
-
1つのページにformを2つ設置。2...
-
HTML内でJavaScriptの変数を使...
-
複数のフォームを一括で自動送...
-
submitボタン押下後、disabled...
-
formのsubmitイベントの発生に...
-
Selectボックスの幅を自動で広...
-
javascript作成してます。ラジ...
-
Pythonで会員サイトの自動ログ...
-
現在時刻を取得してフォームのs...
-
特定<table>内の<td>の色を変える
-
hiddenのvalueの値を変えたい
-
ラジオボタンにタブインデック...
-
javascriptで入力禁止文字をチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitした値を返したい
-
複数のフォームを一括で自動送...
-
iframe内のformをサブミットす...
-
別ウィンドウへのsubmitの挙動...
-
1つのページにformを2つ設置。2...
-
フォームが空欄の時にフォーム...
-
javascriptでASPにデータを渡す
-
Cookieに保存されない
-
POST時に要素を削除してからPOST
-
focus()が上手くいかない
-
submitボタン押下後、disabled...
-
1つのform内に2つのsubmitボタ...
-
FormのonsubmitでJavaスクリプ...
-
テキストエリアに入力したURLに...
-
C# 配列などの受け渡し
-
タブキーでなくエンターキーで...
-
ENTERキーを無効にしたいのです...
-
1つのformで複数のactionをボタ...
-
別窓ウィンドウから親ウィンド...
-
formのsubmitイベントの発生に...
おすすめ情報