質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

1回答

1804閲覧

Ajaxがうまく動きません。

na_iki

総合スコア15

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2017/03/01 13:21

2011年頃PHPで書いたプログラムをZendFrameworkでリファクタリングしています。

その途中なのですが、日記をAjaxで読み込むところがうまくいきません。

コードは次です。

index.phtml

<script type="text/javascript"> $(document).ready(function() { $(".over").bottom({proximity: 0.05}); $(".over").bind("bottom", function() { var ID = $(".more").attr("id"); if(ID) { $("#more"+ID).html(''); $.ajax({ type: "POST", url: "ajax_more_index.php", data: {lastmsg : ID, category :'<?php echo $category ?>'}, cache: false, success: function(html){ $(".over").append(html); $(".more"+ID).remove(); } }); } else { $(".morebox").html(''); } return false; }); }); </script>

ajax_more_index.php

<?php require_once("mysql2.php"); ?> <?php if( 1==1 ) : ?> <?php $category = $_POST['category']; $lastmsg = $_POST['lastmsg']; $mysql = new MySQL; $mysql->query("SELECT *,DATE_FORMAT(calendar,'%y/%c/%e'),DATE_FORMAT(calendar,'%Y'),DATE_FORMAT(calendar,'%m'),DATE_FORMAT(calendar,'%d') FROM kawanikki where no < $lastmsg ORDER BY no DESC LIMIT 5"); while($row = $mysql->fetch()){ $gazo = ""; $no = $row["no"]; $calendar = $row["DATE_FORMAT(calendar,'%y/%c/%e')"]; $nen = $row["DATE_FORMAT(calendar,'%Y')"]; $tuki1 = $row["DATE_FORMAT(calendar,'%m')"]; $hi1 = $row["DATE_FORMAT(calendar,'%d')"]; $naiyo = $row["naiyo"]; $youbi = date("w", mktime(0, 0, 0, $tuki1, $hi1, $nen)); $pic_tmp[0]= $row["pic_tmp0"]; $pic_tmp[1]= $row["pic_tmp1"]; $pic_tmp[2]= $row["pic_tmp2"]; $msg_id = $row["no"]; include("includes/switch.php"); $i=0; while($i<=2){ if(strlen($pic_tmp[$i])>0){ $gazo.="<span class='sikaku$i'>"; $gazo.="<span class='gazo$i'>"; $gazo.='<a href="'; $gazo.='turi_details_image.php?no='.$no; $gazo.='&pic='; $gazo.=$pic_tmp[$i]; $gazo.='">'; $gazo.='<img src='; $gazo.='thumbnail.php?img='; $gazo.=$pic_tmp[$i]; $gazo.='>'; $gazo.="</a>"; $gazo.= "</span>"; $gazo.= "</span>"; } $i++; } $output .=$calendar.$youbi. .$naiyo."<br />".$gazo.'<img src="images/bg.gif" width="1" height="1" alt="dot" class="line1" />'; } echo <<<EOT $output <div id="more$msg_id" class="morebox"> <a href="#" class="more" id="$msg_id">もっと見る</a> </div> EOT; ?> <?php endif; ?>

mysql2.php

<?php //====================================================================== // ■:MySQL クラス //====================================================================== class MySQL{ //--------------------------- // □:変数の宣言 //--------------------------- var $m_Con; var $m_HostName = ""; var $m_UserName = ""; var $m_Password = ""; var $m_Database = ""; var $m_Rows = 0; //--------------------------- // □:コンストラクタ //--------------------------- function MySQL(){ $filename = "mysql1.ini"; //<==Windows //$filename = "/etc/mysql.ini"; //<==Linux if (!file_exists($filename)){ die("mysql.iniファイルが存在しません。"); }Else{ $fp = fopen($filename,"r"); if (!$fp){ die("mysql.iniファイルが存在しません。。"); }Else{ $this->m_HostName=trim(fgets($fp)); $this->m_UserName=trim(fgets($fp)); $this->m_Password=trim(fgets($fp)); $this->m_Database=trim(fgets($fp)); } fclose($fp); } //MYSQLへ接続 $this->m_con = mysql_connect($this->m_HostName,$this->m_UserName,$this->m_Password); if (!$this->m_con){ die("MYSQLの接続に失敗しました。"); } //データベースを選択 if (!mysql_select_db($this->m_Database,$this->m_con)){ die("データベースの選択に失敗しました。DB:{$this->m_Database}"); } define("TABLE_NAME", "LAA0036673-kenji"); define("KEY_NAME", "ID"); define("CONTENT", "kawanikki"); define("DISPLAY_NUM_INIT", 10); define("DISPLAY_NUM", 5); } //--------------------------- // SQLクエリの処理 //--------------------------- function query($sql){ $this->m_Rows = mysql_query($sql,$this->m_con); if (!$this->m_Rows){ die("MySQLでエラーが発生しました。<br><b>{$sql}</b><br>" .mysql_errno().": ".mysql_error()); } return $this->m_Rows; } //--------------------------- // 検索結果をfetch //--------------------------- function fetch(){ return mysql_fetch_array($this->m_Rows); } //--------------------------- // 変更された行の数を得る //--------------------------- function affected_rows(){ return mysql_affected_rows(); } //--------------------------- // 列数 //--------------------------- function cols(){ return mysql_num_fields($this->m_Rows); } //--------------------------- // 行数 //--------------------------- function rows(){ return mysql_num_rows($this->m_Rows); } //--------------------------- // 検索結果の開放 //--------------------------- function free(){ mysql_free_result($this->m_Rows); } //--------------------------- // MySQLをクローズ //--------------------------- function close(){ mysql_close($this->m_con); } //--------------------------- // エラーメッセージ //--------------------------- function errors(){ return mysql_errno().": ".mysql_error(); } //--------------------------- // エラーナンバー //--------------------------- function errorno(){ return mysql_errno(); } } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

philomagi

2017/03/01 13:31 編集

「上手くいきません」では、回答する側も何を答えれば良いのか分かりません。「何をしたいのか、どのように上手くいかないのか、エラーが有ればどのようなエラーなのか」等、問題を絞り込めるような内容を追記してください。また、コードはバッククォーテーションで囲んで、シンタックスハイライトやインデントが効くようにしてください。
na_iki

2017/03/01 13:31

すみません。エラーは次のようにでます。
na_iki

2017/03/01 13:34

Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such file or directory in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such device in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include() [function.include]: Failed opening './application/views/layouts/' for inclusion (include_path='.:/usr/local/php/5.2/lib/php') in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 存在しないコントローラ/アクションです。 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such file or directory in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such device in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include() [function.include]: Failed opening './application/views/layouts/' for inclusion (include_path='.:/usr/local/php/5.2/lib/php') in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157
na_iki

2017/03/01 13:35

MySQLに接続して日記を表示させるようにしたいのです。
philomagi

2017/03/01 13:43

情報展開ありがとうございます。一先ず上記内容を元に推測を含めつつ回答させていただきました。エラー情報、やりたいこと、現状について(エラーが何言っているのか分からない、エラーは分かるが何が原因か分からない、原因は分かるが対策が分からない etc...)を質問本文に追記すると、より回答が集まりやすくなると思います。
kei344

2017/03/01 16:53

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答1

0

[function.include]: failed to open stream: No such file or directoryと出ているので、恐らくinclude関数で取り込もうとしているファイルが見つかっていないのではないでしょうか。
include/switch.phpはincludeディレクトリ以下に有るようですが、そのincludeディレクトリはajax_more_index.phpと同じディレクトリにありますか?

投稿2017/03/01 13:40

編集2017/03/01 13:48
philomagi

総合スコア267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

na_iki

2017/03/01 13:47

include/switch.phpは、ajax_more_index.phpと同じディレクトリにありますか? ありがとうございます。同じ階層になかったので置いてみましたが、エラーメッセージは変わりませんでした。
philomagi

2017/03/01 13:49

すみません、書きたかった内容間違っていたのでついさっき修正しました・・・。 要は、ajax_more_index.phpからinclude/switch.phpというパス指定をしていますが、本当にそのファイルが指定通りのパスに存在しているのか?ということです。
philomagi

2017/03/01 13:59 編集

indexの拡張子が.phpではなく.phtmlとなっていますね・・・。index.phpに拡張子を修正してみてください。 phtmlは、phpのかなり古いバージョン(~ php3)で使われていたものなので、Zendが最新のものなら認識できていないのではないかと思います。
na_iki

2017/03/01 14:08

index.phpに変更したところ、index.phpを表示させようとすると、先程から出ているエラーメッセージのみが表示されるようになりました。
philomagi

2017/03/01 14:11

> 先程から出ているエラーメッセージのみが表示されるようになりました。 `No such file or directory` 以外にもエラーが出ていたということでしょうか? こちらからna_ikiさんの環境を観察することはできないので、現状やエラー情報(特にエラー)については、なるべく正確に漏らさず提供してほしいところです。
na_iki

2017/03/01 14:14

すみません。 index.phpに変更したところ、次のエラーが出ます。 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such file or directory in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such device in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include() [function.include]: Failed opening './application/views/layouts/' for inclusion (include_path='.:/usr/local/php/5.2/lib/php') in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 存在しないコントローラ/アクションです。 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such file or directory in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include(./application/views/layouts/) [function.include]: failed to open stream: No such device in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157 Warning: include() [function.include]: Failed opening './application/views/layouts/' for inclusion (include_path='.:/usr/local/php/5.2/lib/php') in /home/users/1/naiki/web/kyoto/Zend/View.php on line 157
philomagi

2017/03/02 14:51

> 存在しないコントローラ/アクションです。 エラーログにはこのようにありますが、コントローラーは正しく実装されているでしょうか。Viewのみ作成し、コントローラーは未作成だったりしないでしょうか。 また、viewファイルの配置ディレクトリがZendがデフォルトで前提にしているパスとだいぶ異なるようですが、そこには問題ないでしょうか。 https://framework.zend.com/manual/1.10/ja/zend.controller.action.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問