
やりたいこと{
「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ランキング
-
Locationについて
-
JavaScript:現在フォーカスの...
-
【FORM】 リンク文字で submit...
-
submitした値を返したい
-
フォームが空欄の時にフォーム...
-
HTMLのフォーム名とJavaScript...
-
追加ボタンを押した際に ok ボ...
-
onclickをEnterキーでも行いたい
-
プルダウンメニューの項目で1つ...
-
同じページでgetElementsを複...
-
イメージマップで画像変え
-
数値の比較で正しく評価されな...
-
CGI.pmでラジオボタンを思い通...
-
return trueとreturn falseの用...
-
イベント発生時に入力待ち状態...
-
ポップアップブロックにならな...
-
vbsでフォームに値を入力できない
-
jquery.csv2table.jsのテーブル
-
テキストボックスのグレーアウト
-
Javaについて教えてください。 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitした値を返したい
-
別ウィンドウへのsubmitの挙動...
-
iframe内のformをサブミットす...
-
1つのページにformを2つ設置。2...
-
radiobuttonとbuttonを組み合わ...
-
JavaScript:現在フォーカスの...
-
Javascriptでlocation.hrefが妙...
-
C# 配列などの受け渡し
-
submitボタンを表示することな...
-
別窓ウィンドウから親ウィンド...
-
タブキーでなくエンターキーで...
-
inputのvalueを変数として使うには
-
フォームのvalueに配列を格納す...
-
FormのonsubmitでJavaスクリプ...
-
submitボタン押下後、disabled...
-
指定したタグを書き換えるには?
-
リンク先アドレスの一部にテキ...
-
enterについて2
-
フォームが空欄の時にフォーム...
-
ファイル選択と同時にアップロ...
おすすめ情報