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

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

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

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

3回答

1627閲覧

テーブルを指定の数まで増やして入れたいです

pikumin23

総合スコア8

PHP

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/06/30 06:28

プログラミング1週間ちょいの初心者です

###前提・実現したいこと
PHPとiqueryを使ってテーブルを繰り返し?をして増やしたいです
やりたいこととしては

<td><?php if( $nww[0] === ""){ print "ああああああ"; } else{print "$nww[0]";} ?></td> <td><?php if( $row_a[0] === ""){ print "いいいいい"; } else{print "$row_a[0]";} ?></td> <td><?php if( $nww[1] === ""){ print "ああああああ"; } else{print "$nww[1]";} ?></td> <td><?php if( $row_a[1] === ""){ print "いいいいい"; } else{print "$row_a[1]";} ?></td> っていう感じで、これを0~指定の数まで増やして<table>にぶち込みたい!みたいな感じなのですが自分でやっててなんの関数を使ったらいいのか、分割して組み合わせたりしないとできないのかなど基本的なところがわかりません。 答えでもいいですが、参考になるサイトやソースをいただいたりして自分でやってみたいのでよろしければ教えていただけると幸いです。

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

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

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

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

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

m.ts10806

2017/06/30 06:36

プログラムコードは```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)
guest

回答3

0

噛み砕いて流れでご説明します。

実行される順番を考える

まず、実行される順番を理解しましょう。

PHPとJavaScriptでは、必ずPHPから実行されます。
なので、PHPのechoprintで文字が表示された後、JavaScriptの処理になります。

今回やりたいことの整理

PHPの中に持っている変数を、tableに書き出していきたいという認識ですが、あっていますか?
ひとまず上記の認識で書いていきます。

先程の「実行される順番」から、PHPに持っている変数の数だけJavaScriptを実行すると言うのはいささか手際が悪いです。
PHP側で<tr><td></td></tr>echo(またはprint)した方がいい気がします。

しかし、やりたいのであれば仕方がない!
やろうじゃありませんか!!

出力したいPHPの変数分だけ、jQueryを出力する

先程の「実行される順番」から、どうあがいてもJavaScript側からPHPの変数にはアクセス出来ないことがわかりました。
(Ajaxという方法を使えばできなくはないですが、難易度が上がるので今回は言及しません。)

じゃあ、どうすればいいか?

出力したいPHPの変数分だけ、jQueryを出力すればいいんです!

さあ、やりましょうか。

PHP

1<?php 2 3# 予め、表示したいデータをPHPの配列に持っておきます 4$array = array( 5 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 6); 7 8?> 9<html lang="ja"> 10<head> 11 <!-- このページのタイトル --> 12 <title>hoge</title> 13 14 <!-- 文字コードはUTF8に --> 15 <meta charset="utf-8"> 16 17 <!-- 「jQueryを使いますよ」という宣言 --> 18 <script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script> 19</head> 20 21<body> 22 23 <!-- テーブルの基盤を用意しておきます。固有IDは「test」です --> 24 <table id="test" border="1"> 25 <tr></tr> 26 </table> 27 28 <script> 29 30 <?php 31 32 # 変数$arrayの中身の数だけループします 33 foreach ($array as $key => $value) { 34 # 固有IDは「test」のなかのtrタグに追加していきます 35 echo '$("tr").append("<td>'. $value .'</td>");'."\n"; 36 } 37 38 ?> 39 40 </script> 41 42</body> 43 44</html> 45

そうか、Cloud9でエラーチェックすれば良いのか(
修正しました

投稿2017/06/30 06:55

編集2017/07/09 12:16
nnahito

総合スコア2004

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

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

0

これだけだと最終形がいまいち分かりませんが、
ループ処理を利用してPHPだけでもjQueryだけでも実現は可能です。

PHPの配列を利用されているようなので、その配列をforとかforeachとかでループして配列の中身を出力してあげると良いです。
※phpの配列を直接jQueryで参照できないのでどうしてもjQueryがいいという場合は工夫が必要です。

ただし、配列の形式次第なのでやはり最終形(どのような出力結果にしたいか)と配列を作られているならそれもご提示いただきたいところですね。

ちなみに誤記だとは思いますが「iquery」ではなくタグの通り「jQuery」ですね。

サンプルコード

※いずれも動作未検証のためイメージとして参考にしてください

配列の個数が同じでキーナンバーがリンクしている場合。

PHP

1<table> 2<?php 3$row_cnt = count($nww); 4for ($i = 0; $i < $row_cnt; $i++){ 5 echo "<tr>"; 6 echo "<td>"; 7 if($nww[$i] === ""){ 8 echo "あああああ"; 9 }else{ 10 echo $nww[$i]; 11 } 12 echo "</td>"; 13 echo "<td>"; 14 if($row_a[$i] === ""){ 15 echo "いいいいい"; 16 }else{ 17 echo $row_a[$i]; 18 } 19 echo "</td>"; 20 echo "</tr>"; 21} 22?> 23</table>

0から連番であるものの配列の個数が違う場合はちょっと工夫が必要

PHP

1<table> 2<?php 3$row_cnt = count($nww); //同数のための確保 4if(count($nww) > count($row_a){ //$nwwが多い 5 $row_cnt = count($nww); 6}elseif(count($nww) < count($row_a)){ //$row_aが多い 7 $row_cnt = count($row_a); 8} 9for ($i = 0; $i < $row_cnt; $i++){ 10 echo "<tr>"; 11 echo "<td>"; 12 if(array_key_exists($i,$nww) && $nww[$i] !== ""){ 13 echo $nww[$i]; 14 }else{ 15 echo "あああああ"; 16 } 17 echo "</td>"; 18 echo "<td>"; 19 if(array_key_exists($i,$row_a) && $row_a[$i] !== ""){ 20 echo $row_a[$i]; 21 }else{ 22 echo "いいいいい"; 23 } 24 echo "</td>"; 25 echo "</tr>"; 26} 27?> 28</table>

補足

配列に対して$nww[] = "hoge"という形で値を代入すると0から連番で入っていきます。
そのためforの開始を0から配列の個数未満指定でループし、$nww[$i]という形で取り出します。

投稿2017/06/30 06:41

編集2017/06/30 07:24
m.ts10806

総合スコア80765

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

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

pikumin23

2017/06/30 07:00 編集

出力結果としましては単純に <table><tr><td>あああああor$nww[0]</td> <td>いいいいいor$row_a[0]</td></tr> <tr><td>あああああor$nww[1]</td> <td>いいいいいor$row_a[1]</td></tr> ...........</table>って感じですね 配列はGETで入ったものをfilter処理するときに個別で処理するために後ろに数字を入れたかったので配列を使用しました for ($i = 0; $i < $OPkou; $u++){ $nww[] = filter_input(INPUT_GET, "num[]", FILTER_DEFAULT, FILTER_REQUIRE_ARRAY);}って感じですね 同じくrow_aにもしています いちおうfor文を作ってみたのですがうまくいきません・・・ <?php for ($i = 0; $i < $OPkou; $i++){ echo '<td>'; if( $nww[] === "") { print "あああああ"; } else{print "$nww[]"; } } ?>
m.ts10806

2017/06/30 07:03

$nwwと$row_aは数同じですよね?$OPkouはどこから来てますか?
m.ts10806

2017/06/30 07:20

if文のところ考慮してませんでした。 カラだったら固定値ってことですね。修正しておきます。
guest

0

For でまわせばいいですよ

投稿2017/06/30 06:40

to.chan.genkida

総合スコア69

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問