pjax(defunkt) -> フォームの値の受け渡し

Posted by muchag | jQuery,Library & PlugIn & AddIn,困ったTT |
初回投稿:2015-02-18 (水) 12:44:50 | 最終更新:2015-02-18 (水) 13:33:45

フォームの値の受け渡しについて。

【環境】
jQuery:2.1.3
pjax(defunkt):1.9.4
GET

GET 渡しはすんなりできた。

  1. var url = 'index.php';
  2. var data = {
  3.     name : $( 'input[name = "name"]' ).val(),
  4.     value : $( 'input[name = "value"]' ).val()
  5. };
  6. $.pjax({
  7.     url: url,
  8.     type: 'GET',
  9.     data: data,
  10.     container: '#container',
  11. });
  1. // print_r( $_GET ); 結果
  2. Array
  3. (
  4.     [name] => hoge
  5.     [value] => 1
  6. )

 

JSON

dataType を json にしても、結果は同じ。

  1. $.pjax({
  2.     url: url,
  3.     type: 'GET',
  4.     data: data,
  5.     dataType: 'json',
  6.     container: '#container',
  7. });

 

JSONP

dataType を jsonp にすると、2つばかり $_GET の値が増えた。。。

  1. $.pjax({
  2.     url: url,
  3.     type: 'GET',
  4.     data: data,
  5.     dataType: 'jsonp',
  6.     container: '#container',
  7. });
  1. // print_r( $_GET ); 結果
  2. Array
  3. (
  4.     [callback] => jQuery21309920695357463317_1424227516871
  5.     [name] => hoge
  6.     [value] => 1
  7.     [_] => 1424227516872
  8. )

まぁ、JSON と JSONP のお勉強は今度ということで。 🙄
 

POST
  1. var url = 'index.php';
  2. var data = {
  3.     name : $( 'input[name = "name"]' ).val(),
  4.     value : $( 'input[name = "value"]' ).val()
  5. };
  6. $.pjax({
  7.     url: url,
  8.     type: 'POST',
  9.     data: data,
  10.     container: '#container',
  11. });
  1. // print_r( $_POST ); 結果
  2. Array
  3. (
  4. )

$_POST を取得できていない。
そして通信時間が長くなった。

dataType を text にしても、結果は同じ。
 

serialize()

data を serialize() にしても結果は同じ。

  1. var url = 'index.php';
  2. $.pjax({
  3.     url: url,
  4.     type: 'POST',
  5.     data: $( 'form' ).serialize(),
  6.     container: '#container',
  7. });

 

JSON, JSONP

dataType を json にしたら、通信すら行われなくなった。
JSONP にしても、通信は行われない。

  1. $.pjax({
  2.     url: url,
  3.     type: 'GET',
  4.     data: data,
  5.     dataType: 'json',
  6.     container: '#container',
  7. });

 
困った
仕方ないので、今回は GET で対応。

Posted by muchag | jQuery,Library & PlugIn & AddIn,困ったTT |
初回投稿:2015-02-18 (水) 12:44:50 | 最終更新:2015-02-18 (水) 13:33:45

フォームの値処理

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:55:45 | 最終更新:2015-02-17 (火) 18:55:45

フォームの値の取得と設定。
一覧サイトをめっけたので、参考サイトのみ。

参考サイト

JavaScript好き:jQueryにおけるフォーム値の取得と設定

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:55:45 | 最終更新:2015-02-17 (火) 18:55:45

タブメニュー 横その1

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:10:40 | 最終更新:2015-02-17 (火) 18:11:33

横並びのタブメニューその1。

【環境】
jQuery:1.11.2
HTML
  1. <div id="tab">
  2. <ul>
  3.     <li>tab_1</li>
  4.     <li>tab_2</li>
  5.     <li>tab_3</li>
  6. </ul>
  7. </div>

 

CSS
  1. #tab ul li {
  2.     float: left;
  3.     height:20px;
  4.     margin:0px 0px 0px 10px;
  5.     padding:5px 15px 5px 15px;
  6.     border:1px solid #ddd;
  7.     color: #999;
  8.     background-color:#ddd;
  9.     cursor:pointer;
  10. }
  11. #tab ul li.selected {
  12.     color: #000;
  13.     background-color:#fff;
  14.     cursor:default;
  15. }

 

jQuery
  1. $( '#tab ul' ).on( 'click', 'li', function() {
  2.     $( 'li.selected' ).removeClass( 'selected' );
  3.     $( this ).addClass( 'selected' );
  4. })
  5.  
  6. $( '#tab ul li' ).first().trigger( 'click' );

 
ソースはほぼ参考サイトからいただいてきた。
 

参考サイト

jQuery 入門:タブメニュー(1)

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 18:10:40 | 最終更新:2015-02-17 (火) 18:11:33

.first()

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 17:50:13 | 最終更新:2015-02-17 (火) 17:52:15

エレメントセットの中の最初のエレメントを拾ってくるメソッド。

jQuery:.first()

【環境】
jQuery:1.11.2
書式

.first()

Reduce the set of matched elements to the first in the set.
勝手意訳:合致するエレメントセットから、セット内の最初のオブジェクトを捕まえる

引数:なし
返り値:jQuery オブジェクト
 

  1. <ul>
  2.     <li>list item 1</li>
  3.     <li>list item 2</li>
  4.     <li>list item 3</li>
  5.     <li>list item 4</li>
  6.     <li>list item 5</li>
  7. </ul>
  1. $( "li" ).first().css( "background-color", "red" );

li というエレメントセット(5個)の最初のオブジェクト

  1. <li>list item 1</li>

を捕まえて CSS を設定する。
 
child 系ではないので、ul に対する first ではない。

Posted by muchag | jQuery |
初回投稿:2015-02-17 (火) 17:50:13 | 最終更新:2015-02-17 (火) 17:52:15

sprintf

Posted by muchag | PHP |
初回投稿:2015-02-16 (月) 9:31:41 | 最終更新:2018-11-28 (水) 12:56:21

フォーマットを指定して文字列を生成する関数。

PHP マニュアル:sprintf

【環境】
php:5.4.7
書式

string sprintf ( string $format [, mixed $args [, mixed $… ]] )

フォーマット文字列 format に基づき生成された文字列を返します。

第1引数:フォーマット文字列
第2引数以降:配置引数(文字列、数値)。省略可
返り値フォーマット済み文字列
 

フォーマット文字列

一般文字列の中に各指定子を組み込む形式。
正規表現と同じような指定子の使い方。


$str = sprintf( 'リンゴ%d個', 5 );
echo $str;

// 出力結果
リンゴ5個

%d の部分が指定子。
そして、後続引数(5 の部分)にて値を指定。
これで指定子の部分を引数に置換して返してくれる。
 

指定子

詳細はマニュアルで。
 

置換指定子

%d:整数
%+d:整数(符号あり)
%-d:整数(符号あり)
%s:文字列
 

位置指定子

n$:n = 引数の順序。% 直後に配置
%1$d:1番目の引数の整数を指定
%2$s:2番目の引数の文字列を指定


$str = sprintf( '%2$sからもらったリンゴは%1$d個', $num, $name );
echo $str;

// 出力結果
太郎からもらったリンゴは5個

引数の順番が入れ替わっても大丈夫!
 

パディング

桁(文字数)揃え。
0 パディングだけでなく、何でも指定できる。
*n:* = 埋める文字(数字)、n = 桁数
%04d:4桁の0 パディング

0 以外の文字を利用する場合は、
‘# のようにシングルクォーテーションを付けるみたい。
未検証。
 
私が具体的に利用したのは


$year = 2015;
$month = 2;
$str = sprintf( '%04d-%02d', $year, $month );
echo $str;

// 出力結果
2015-02
インデント?

「インデント」で合ってたからしらね。。。 

今日(2018-11-28)、あれこれ見ている中で
知らない指定方法を見つけた。
アシアルブログ:PHPでリフレクション(2010-09-21)


require __DIR__.'/Entity/User.php';

$reflClass = new ReflectionClass('Entity\User');

echo sprintf("%-20s: %s\n", 'getName', $reflClass->getName());
echo sprintf("%-20s: %s\n", 'getNamespaceName', $reflClass->getNamespaceName());
echo sprintf("%-20s: %s\n", 'getShortName', $reflClass->getShortName());
echo sprintf("%-20s: %s\n", 'getFileName', $reflClass->getFileName());

// 出力結果
getName             : Entity\User
getNamespaceName    : Entity
getShortName        : User
getFileName         : /home/fivestar/asial-blog/Entity/User.php

おー こういうのもあるのね。

参考サイト

PHP マニュアル:str_pad

Posted by muchag | PHP |
初回投稿:2015-02-16 (月) 9:31:41 | 最終更新:2018-11-28 (水) 12:56:21

UNION

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 17:28:26 | 最終更新:2015-02-13 (金) 19:31:28

他の記事もそうなんだけど、この記事は特に勉強中で自信がないので、内容が間違っている可能性大。 8-X

【環境】
MySQL:5.5.27

MySQL:13.2.9.4 UNION Syntax

概要

クエリ結果が同一構成となる2つ以上のクエリ結果を合成する。
 
JOIN による結合と違って、リレーションしているわけではない。
単に2つ以上のクエリ結果を1つのテーブル上にする。
 

注意
  1. それぞれのクエリが同カラム数であること
  2. 各カラムが同じ順番に並んでいること
  3. 各カラムのデータ型が同一であること
  4. 場合によって、メイン SELECT の部分にも()が必要
  5. FROM 句サブクエリ内で利用する場合は、サブクエリ全体にエイリアスをつけること

 

基本
  1. SELECT id, name, created_at FROM table_a
  2.     UNION SELECT id, name, modified_at FROM table_b

2つの SELECT がある。
カラム数は同じく 3。
カラム名は異なっていてもよい。→メインの SELECET 文のカラム名が返る。
2015-02-13_UNION_1

 

重複

この項は勉強、実証ともに特に不十分

UNION は、そのまま使うと重複した行は無視されるらしい。

重複した行を拾いたいときは、下記のように ALL をつける。

  1. SELECT id, name, created_at FROM table_a
  2.     UNION ALL SELECT id, name, modified_at FROM table_b

 

注文

こうして合成されたクエリ結果に ORDER BY, LIMIT などの注文を付けたい場合は、更にその後ろに続ける。
そして、SELECT 文を()で括る

  1. ( SELECT id, name, created_at FROM table_a )
  2.     UNION ( SELECT id, name, modified_at FROM table_b )
  3.     ORDER BY id

 

FROM 句

FROM 句にて UNION を利用するときは、エイリアスを付ける。

  1. SELECT id, name, created_at
  2.     FROM (
  3.     SELECT id, name, created_at FROM table_a
  4.     UNION SELECT id, name, modified_at FROM table_b
  5.     ) as sub

このとき、UNION SELECT 文にエイリアスを付けてしまわないように注意。
あくまでも FROM 句全体 に()を付ける。
 
これはサブクエリのルールだから当然か~。
サブクエリ

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 17:28:26 | 最終更新:2015-02-13 (金) 19:31:28

サブクエリ

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 1:38:03 | 最終更新:2015-12-28 (月) 18:55:50

まだおぼろげにしか捉えられていないけど、メモ。

【環境】
MySQL:5.5.27, 5.5.38

MySQL:13.2.10 Subquery Syntax

概要

SQL 文の中に、独立した SQL 文を入れ込む。

  1. SELECT *
  2.     FROM hoge
  3.     WHERE user_id = ( SELECT id FROM user WHERE name = "田中" )

例えば、こんな風に書くと、user テーブルで田中さんの id を突き止め
hoge テーブルにある、田中さんの情報だけを取り出すことができる。 😎
 

使い方
ルール

サブクエリは()で括りましょう。
 

SELECT 句

言葉でうまく説明できないので、参考サイト参照。

でも、こういう使い方ができると便利だね~。
 

FROM 句

本来テーブル名を書くはずの FROM 句。
ここにサブクエリを置くことで、クエリをテーブルとして扱うことができる。
 

ルール

必ずエイリアスをつけましょう。
 
私は見事にはまりました。 👿
サブクエリ -> エイリアス
 

WHERE 句、HAVING 句

クエリ結果を条件に設定することができる。
 
まだまだこの程度しかわかっていないので
また判明したことが出てきたら追記!

相関サブクエリ

メインクエリとサブクエリに共通のレーブルが登場するタイプ?
MySQL は苦手とするみたい。
 

参考サイト

Smart:SELECT構文:サブクエリ構文

TECHSCORE:7. サブクエリ

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 1:38:03 | 最終更新:2015-12-28 (月) 18:55:50

サブクエリ -> エイリアス

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 1:21:21 | 最終更新:2015-02-13 (金) 1:21:21

FROM 句に入れるサブクエリではまった。

【環境】
MySQL:5.5.27
現象
  1. SELECT * FROM ( SELECT a, b RROM hoge );

この SQL 文が通らない。

  1. SELECT a, b RROM hoge

これが通っていることは確認済みなのに、何でか通らない。
 

原因

サブクエリにエイリアスがついていなかった。
FROM 句内でサブクエリを使っているサイトを見ていると
どれにもエイリアスがついているので、もしや・・・と思い試してみたらビンゴ。

どこにも使わないから、エイリアスをつけてなかったんだけど
それが原因でした。

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 1:21:21 | 最終更新:2015-02-13 (金) 1:21:21

カラムの演算 -> 負の数

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 0:54:53 | 最終更新:2015-02-13 (金) 0:54:53

負の数の結果を得る SQL が通らなくて難儀した。

【環境】
MySQL:5.5.27
現象

あるカラムの値を負の数として取得したくて、下記のような SQL を投げた。

  1. SELECT num * -1 FROM hoge;

しかし、これが通らない。

  1. SELECT num - 100 FROM hoge;

これもだめ。
 

原因

num カラムの属性を unsigned にしていたことにあったようだ。
属性を外したら結果を取得できた。

属性が unsigned だと、演算結果が負の数になるような演算を受け付けてくれないみたい。
テーブルの属性が、クエリにも影響するとは思わなかった。
エイリアスまでつけたのにな~。 😯

Posted by muchag | MySQL |
初回投稿:2015-02-13 (金) 0:54:53 | 最終更新:2015-02-13 (金) 0:54:53

GROUP BY -> WITH ROLLUP

Posted by muchag | MySQL |
初回投稿:2015-02-12 (木) 22:59:00 | 最終更新:2015-02-12 (木) 23:02:01

素敵な集計オプション。

【環境】
MySQL:5.5.27, 5.5.38

MySQL:12.17.2 GROUP BY Modifiers

効能

集計の集計をしてくれる。
 

2015-02-12_WITH ROLLUP_1これが一覧表。

 
2015-02-12_WITH ROLLUP_2WITH ROLLUP をつけると、こういう風に集計できる。
黄色い網掛けは、国別集計。
緑の網掛けは、年度集計。
赤の網掛けは、全体集計。
素晴らしい!

 

参考サイト

FLATZ:MySQLの知っていると便利な構文(その2)

Posted by muchag | MySQL |
初回投稿:2015-02-12 (木) 22:59:00 | 最終更新:2015-02-12 (木) 23:02:01
« 前ページへ次ページへ »