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

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

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

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

jQuery

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

Q&A

2回答

2261閲覧

デフォルトで指定の文字を表示し、クリックしたら文字を入れ替えることをしたいのですが・・・・

ojityan

総合スコア9

PHP

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

jQuery

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

0グッド

0クリップ

投稿2015/08/03 01:47

編集2015/08/08 05:48

echo "<div id='tab01'>";
echo "<div class='new_left'>";
echo "<font color='white'>";
echo "<a href='#' id='u1000_create'>新規作成</a><br>";
$result = $mysqli->query("SELECT id from UPDATE_INFO order by id");
if($result)
{
//1行ずつ取り出し
while($row = $result->fetch_object())
{
echo "<font color='white'>";
//エスケープして表示
$pid = htmlspecialchars($row->id);
echo "<a href='#' id='$pid'>".$pid."</a>";
echo "</font>";
echo "<br>";
}
}
echo "</font>";
echo "</div>";

echo "<div class='new_right' id='section01'>"; echo "<font color='white'>"; echo "<script type='text/javascript'>"; ?> $("a").on('click', function() { var uid = this.id; if(uid) { $('#section01').load('./test511_select.php?uid='+uid); } }); <?php echo "</script>"; echo "</font>"; echo "</div>";

echo "</div>";

今現時点ではクリックしないとtest511_select.phpファイルから取ってきた文字を表示しません。
改善したいのはクリックしなくても設定した文字を表示し、クリックしたらtest511_select.phpファイルから取ってきた文字を入れ替えるようにさせたいのです。

URL:http://www.low-cost-travel.pe.hu/test513.php

大変恐縮ですが教えていただけないでしょうか?

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

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

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

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

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

guest

回答2

0

まずPHPであれば必要部分だけ<php ・・・ ?>で囲むようにして、他は普通のHTMLで書いたほうが可読性が上がるかと思います。
ま、それはさておき…

javascript

1$(function() { 2});

を上手に活用して、DOM読み込み時に表示するようにすればよいかと思います。

投稿2015/08/03 04:04

yu-ri

総合スコア634

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

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

ojityan

2015/08/03 05:12

すいません。サンプルとか頂けないでしょうか?
yu-ri

2015/08/03 13:20

うーん主様の文章をもう一度読み返してみたら、矛盾がありますね… --- 今現時点ではクリックしないとtest511_select.phpファイルから取ってきた文字を表示しません。 改善したいのはクリックしなくても設定した文字を表示し、クリックしたらtest511_select.phpファイルから取ってきた文字を入れ替えるようにさせたいのです。 --- ・クリックしないと指定ファイルからとってきた文字を表示しないのは× ・クリックしたら指定ファイルからとってきた文字を表示するのは○ …という風に読み取れるのですが…これって明らかに矛盾してますよね。 ・最初に設定した文字を表示したいのに表示されない ・クリックしても値が入れ替わらない ・クリックしなくても指定ファイルから取り出した値をまず表示させたい このどれに当てはまりますでしょうか。
ojityan

2015/08/03 14:27 編集

下記を見ていただけないでしょうか? http://low-cost-travel.lk6.co/test511.php# 【操作】 一番下のEiterをクリック⇒タブメニューの下の右側が何も表示されてません。 ダイアログをを開いた時点で新規作成(左)の画面と同じを表示させたいのです。 今現時点だとダイアログを開いて新規作成のリンクをクリックしないとと右の 画面が変わりません。
yu-ri

2015/08/03 14:45

動作云々の前に。 http://low-cost-travel.lk6.co/ 上記を叩いたら見えてはいけないものが見えてしまいました。 It Works!あたりに変えておいた方がよいかと思います。 いやぁ怖い怖い…。
yu-ri

2015/08/03 14:58

で、ソース拝見した限りこれでどうでしょうか。 test511-dialog.js $('#open2').click(function() { $("#mado2").ipop(); $("a#u1000_create").trigger('click'); });
ojityan

2015/08/03 23:25 編集

いぜん文字化けの原因を調査していた時のままにしておりました。 ひとつは無事解決できました。ありがとうございます。 ただ、ほかのタブをクリックするとまた新規作成をクリックしないと 同じことになってしまいます。 たとえばトラベルをクリックしたら新規作成画面を表示させるには どうしたらいいでしょうか。 今調べている最中でですが、もしサンプルコードを書いてる最中で 解決したらすいません。
yu-ri

2015/08/03 23:42

要は何かをクリックしたときに、連動して他のクリックが働けばよいのかと思います。 何かのクリック時にtriggerで目的の要素をクリックするようにしてみてはいかがでしょうか。
ojityan

2015/08/03 23:51

ありがとうございます。もう一度確認してみます。
ojityan

2015/08/04 00:08

$('#tab02').click(function() { $("a#t4000_create").trigger('click'); }); tab02(トラベル)をクリックしたら右側にトラベル用の新規作成が表示されるかと 思いますが、表示されません。これでは不十分なのでしょうか?
yu-ri

2015/08/04 03:34

ソース拝見しました。 $('#open2').click(function() { $("#mado2").ipop(); $("a#u1000_create").trigger('click'); $('#tab02').click(function() { $("a#t4000_create").trigger('click'); }); }); これを、 $('#open2').click(function() { $("#mado2").ipop(); $("a#u1000_create").trigger('click'); }); $('#tab02').click(function() { $("a#t4000_create").trigger('click'); }); こうしてみたらどうでしょうか。
ojityan

2015/08/04 04:41

実はそのパターンはすでに確認済みで今ほかのパターンを探しております。 ディスクのクリーンアップや履歴の削除などをしましたが、状況などが一向 変わりません。 今ほかのパターンを探しておりますが、もしお時間が頂けるようでしたら ご協力いただけたら幸いです。
yu-ri

2015/08/04 14:53 編集

ソースを拝見しようとしたら404でした… お手数ですが閲覧できるURLをご提示いただけますでしょうか。 何となく原因は分かるのですが、確証を得たいので。
ojityan

2015/08/05 02:37

yu-riさん 私がどうやら動作確認をしすぎてレンタルサーバ(未来サーバ)が落ちたぽいです。 上記も変更しますが、下記のURLを記載しておきます。お手数おかけして申し訳ございません。 http://www.low-cost-travel.pe.hu/test512.php
yu-ri

2015/08/05 03:45

$('#tab02').click(function() { $("a#t4000_create").trigger('click'); }); これはtab02というIDを持つ要素をクリックしたときに動きます。 ソースを拝見する限り、実際にはそのIDの中にあるAタグをクリックしておりますので、そもそも上記JQueryが動いていないものと思われます。 $("#tab02 a[href=#tab02]").click(function() { $("a#t4000_create").trigger('click'); }); でいかがでしょうか。
ojityan

2015/08/05 05:08 編集

yuiさん 少しだけ進展したような感じだと思います。 今現時点だと以下のようになっております。 1、EDITでダイアログを開かれます。 2.個人ページの新規作成画面が表示されます 3.トラベルというタブをクリックします。 4.新規作成のリンクをクリックしてが新規作成用の画面が表示されます。 5.技術関連のタブをクリックします。 6.再度トラベルのタブをクリックします。 7.トラベルの新規作成の画面が表示されます。 8.再度個人ページのタブをクリックします。 9.個人ページの新規作成画面が表示されます 【改善したい流れ】 1、EDITでダイアログを開かれます。 2.個人ページの新規作成画面が表示されます 3.トラベルというタブをクリックします。 4.トラベルの新規作成画面が表示されます。 5.技術関連というタブをクリックします。 6.技術関連の新規作成画面が表示されます。 上記のようにしたいのですがお力を頼ってばかりで申し訳ございません。
yu-ri

2015/08/05 05:41 編集

あーすいません、ソース改めて拝見しましたがタグ指定間違ってましたね…。 $("#tab02 a[href=#tab02]") ↓ $("ul#tabnavi a[href=#tab02]") でいけるかも。
ojityan

2015/08/05 10:30

まだ『改善したい流れ』のような感じにならないです(^^;) 着実に近いづいているのは確かなのですが・・・・。
yu-ri

2015/08/05 12:52

ふーむ…今落ち着いてソースを洗いなおしているのですが、至る所でAタグのクリックイベントが発生しており、どれが優先しているかわからないですね…。 DOM読み込み完了時のイベントも散乱しておりますゆえ、一度目的を整理したうえでソースを綺麗にした方がいいかもしれません。
ojityan

2015/08/06 12:26 編集

危険なことは承知でしました。 ご連絡ありがとうございます。
yu-ri

2015/08/06 12:04

ちょ…中々危険なことをされますね…(汗 落としましたのでコメントは即刻編集しておいてください。
guest

0

$(window).on('load', function() {});を利用したらどうでしょう。

追記
yu-riさんの言うとおり、$(function(){});を利用した方が良さそうなので、そちらで書きます。

javascript

1$(function(){ 2 $('#section01').load('./test511_select.php'); 3 $("a").on('click', function() { 4 var uid = this.id; 5 if(uid) 6 { 7 $('#section01').load('./test511_select.php?uid='+uid); 8 } 9 }); 10});

こんな感じになるかと思います。

投稿2015/08/03 02:49

編集2015/08/03 06:01
orange0190

総合スコア1698

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

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

ojityan

2015/08/03 05:16

すいません。サンプルを頂けないでしょうか?
ojityan

2015/08/03 11:12

$('#section01').load('./test511_select.php'); 上記のコードが入ってしまうとダイアログが起動しなくなってしまいます。 $.onではやるとダイアログが起動しますが、希望通りの動作がしません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問