みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

JavaScriptとPHPの非同期通信

以下プログラムです。
ファイル名はsample3.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>合計金額表示登録p130</title>
<script type="text/javascript" src="../lib/jquery-1.8.1.min.js"></script>
<script type="text/javascript">
$(function () { $("#exe").click(sales); });

function sales(){
var query = {};
query["id"] = $("#id").val();
query["price"] = $("#price").val();
query["amount"] = $("#amount").val();

$.post("sample3.php",query,function(resp){
$("#sales").text(resp);
});
}
</script>
</head>

<body>
<h2>合計金額表示</h2>
ID:<input type="text" id="id" size="8"/>
価格:<input type="text" id="price" size="10"/>
数量:<input type="text" id="amount" size="8"/>
<input type="button" id="exe" value=" 登録 "/>
<hr/>
合計金額:<span id="sales"></span>
</body>
</html>


ファイ名sample3.php

<?php
$id = $_POST['id'];
$price = $_POST['price'];
$amount = $_POST['amount'];
$total= $price * $amount;
$data = $id.",".$price.",".$amount.",".$total."\n";      (1)
$fp = fopen("./dat/sales.txt" , 'a') or die("OPENエラー");  (2)
fputs( $fp, $data);                       (3)
fclose( $fp );         (4)
print $total;
?>
以上のプログラムですが、個々のプログラムの約役割が知りたくて質問しました。
ファイルのsample3.htmlとsample3.phpプログラムはAjax⇒jQueryで動いています。
sample3.phpの(1)~(4)はファイル書き込み処理をするため役割があるそうです。
 質問
  (2)のfopen("./dat・・・)の最初のドット”.”(文字列連結演算子?)の役割を教えてください。
  (2)or die("OPENエラー")このプログラムは何をしているのですか?
(3)fputs( $fp, $data);このプログラムの大きな役割は何ですか?予想ですが、sample3.htmlで入力された文字と
    sample3.phpの$total= $price * $amount;で処理された値を何かしている!?
  (4)役割は何ですか・( $fp )を”close”閉めているみたいに見えますが!?
  以上よろしくお願いします。 
  

投稿日時 - 2013-03-13 06:23:32

QNo.7990802

困ってます

質問者が選んだベストアンサー

(2) fopen("./dat・・・)の最初のドットは、ファイルの場所を相対パスで書く際の最初の位置を示しており、ドット1つはそのプログラムが置いてあるディレクトリを指しています。Unix系OSで使うファイルパスの指定方法です。
"./dat/sales.txt" はプログラムが置いてあるディレクトリ内の dat ディレクトリに入っている sales.txt というファイルを指しています。

or die("OPENエラー") は直前の処理に失敗した場合、"OPENエラー"というメッセージを出力してプログラムを終了させるという事をしています。
この場合 fopen の処理に失敗したら(ファイルが開けなかったら)、そこで、メッセージを出力して処理を終了させます。
http://www.php.net/manual/ja/function.die.php

fputs( $fp, $data); は(2)で開いたファイルに、(1)で作った $data の中身を書き込んでいます。
http://www.php.net/manual/ja/function.fputs.php

(4)は(2)で開いたファイルを閉じています。
$fpは(2)でfopenをした際に、開いたファイルの情報が格納されています。
http://www.php.net/manual/ja/function.fclose.php

phpの関数は、そのままgoogle等で検索するとマニュアルページが見つかるので一度検索してみましょう。

投稿日時 - 2013-03-13 07:43:54

お礼

有難うございます。
大変よくわかりました、助かります。
今後ともよろしくお願いいたします。

投稿日時 - 2013-03-15 05:44:22

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問