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

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

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

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

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Ajax

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

Q&A

解決済

1回答

2640閲覧

Ajax で取得したデータを用いてJqueryでプルダウンを作成したいがうまくいきません

hidepon

総合スコア206

PHP

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

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Ajax

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

0グッド

0クリップ

投稿2017/03/18 05:57

編集2017/03/18 06:41

Jquery でボタンを押すアクションで行を追加する処理に各行にプルダウンを設定しようとしています。
ところがAjaxで取得したデータが表示されず困っています。

//モデル public function Get_Data(){ //POSTデータ $post_array = array(); $post_array = $this->input->post(); $sql = " select code as code,name as name"; $sql .= " from ref "; $query = $this->db->query($sql); $conv = array(); if($query->num_rows() > 0){ foreach($query->result() as $row){ $ary = array(); $ary[$row->code]= $row->name; $conv[] = $ary; } } return $conv; }
//コントローラ public function index(){ $ary =$this->amu054->Get_Data(); echo json_encode($ary); }
//JS jQuery(function(){ jQuery('#add_table').click(function(){ var len = $("#tbl tbody").children().length; if(len > 6){ $("#add_table").attr("disabled","disabed"); } $.ajax({ type: "POST", url: "/admin/au054", dataType: "json", cache: false, success: function(data, status){ var element; var row; for(var i in data){ element += ' <option value ="' + data[i].code + '">' + data[i].name + '</option>'; } var count = $("#tbl tbody").children().length; row += '<tr>'; row += '<td><select name="code[]" id="sns">' + element + '</td>'; row += '<td><input type="text" name="prm" size="20" /></td>'; row += '</tr>'; $("#tbl").append(row); }, error: function(XMLHttpRequest, status, errorThrown){ alert("エラーが発生しました!"); } }); }); jQuery('#del_bottom').click(function(){ if (jQuery('tbody tr').length) { jQuery('tbody tr:last').remove(); } }); });
//HTML <table class="table" id="tbl"> <tbody> <tr> <th><select name="code[]" id="code"> <option value ="0"></option> <option value ="01">aaaa</option> <option value ="02">bbbb</option> <option value ="03">cccc</option> <option value ="04">dddd</option> <option value ="05">eeee</option> </select> </th> <td><input type="text" name="prm[]" size="20" /></td> </tr> </tbody> </table> <p><input type="button" id="add_table" value="追加する" />&nbsp;<input type="button" id="del_table_sns" value="削除する" /></p>

ボタンを押して行を追加
そしてプルダウンとテキストボックスの行を生成という操作を行いたいです。
うまくデータが表示されず困っています。
どうぞご教授のほど宜しくお願いいたします。

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

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

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

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

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

kei344

2017/03/18 06:02

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

退会済みユーザー

2017/03/18 06:15

期待通りの要求(POST データを含めた)が出ているのか、期待通りの応答(コンテンツを含めた)が返ってきているのか、ブラウザでの応答の処理に問題がないのか、切り分けてください。Fiddler などのキャプチャツールを使えば容易にできると思います。
hidepon

2017/03/18 06:33

個別にコードブロックで囲みました。スミマセン。使い方が良く分かっていなかったもので・・・宜しくお願いいたします。
hidepon

2017/03/18 06:57

SurferOnWwwさん 有難うございます。データの受信はできているようで、取得したデータの処理に問題があるのかと思っています。element 部分にプルダウンの要素が出てこなくて困っているというのが現時点での課題です。宜しくお願いいたします。
hidepon

2017/03/18 07:39

自己解決しました。チョンボです。情けないです。バカちんです。スミマセン。
退会済みユーザー

退会済みユーザー

2017/03/18 07:47

「受信」というのはサーバ or ブラウザどちら側のことを言ってますか? どのようにそれを確認したのですか? きちんとキャプチャツールで見て内容を確認したのでしょうか?
退会済みユーザー

退会済みユーザー

2017/03/18 07:47

そもそも、POST するということはブラウザから何かデータを送信すると理解していますが、jQuery.ajax のコードには data オプションが設定されてないようです。それでデータを送信できるんでしたっけ?
退会済みユーザー

退会済みユーザー

2017/03/18 07:48

そこのところは問題ないとして、サーバからの応答は期待通りなのですか? 404 とか 500 応答が返ってきているということはなくて、期待した JSON 文字列が送られてきているのですか?
退会済みユーザー

退会済みユーザー

2017/03/18 07:48

キャプチャツールを使って見てください。IE の F12 開発者ツール、Chrome のディベロッパーツールも使えますが、個人的には Fiddler がお勧めです。
hidepon

2017/03/18 07:50

データをPOST送信しないで、ただ、通信してDBから取得したデータを受け取るという作業です。過去のソースをコピペしたので、あまり考えていないです。
hidepon

2017/03/18 07:55

上のコメントに記載しましたが、なんとか解決しました。JSON文字列の整形に問題があったというのがチョンボです。
guest

回答1

0

自己解決

foreach($query->result() as $row){ $ary = array(); $ary[$row->code]= $row->name; $conv[] = $ary; }

foreach($query->result() as $row){ $ary = array(); $ary["code"]= $row->code; $ary["name"]= $row->name; $conv[] = $ary; }

とすれば解決しました。勘違いというか、ちょんぼです。

投稿2017/03/18 07:37

hidepon

総合スコア206

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問