忍者ブログ

Wordpressメモとかアフィめもとか

Wordpress,PHP,アフィリエイトとかの個人メモを記録していくよ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

jQuery select要素の取得 css セレクタ nameとか

jQueryでHTMLのselect要素で選択されている値selectボックスに表示している値を取得する場合。

<select name="cat">
  <option val="1">カテゴリー1</option>
  <option val="2" selected>カテゴリー2</option>
  <option val="3">カテゴリー3</option>
</select>



select要素表示しているテキストを取得
var SELECT_TXT  = $('select[name="cat"] option:selected').txt();
 
これでカテゴリー2がSELECT_TXTに入る。

拍手[5回]

PR

PHPの文字列比較 (数値型と文字列型の比較)

PHPでは文字列型と数値型を比較する場合など、違う型同士の比較は強制的に内部で型変換が行われているらしい。

引用:PHPマニュアル PHP:比較演算子

なので、↓のがtrueになる。

if ("1234abc" == 1234) {
  echo 'true';
} else {
  echo 'false';
}

これはPHPのバグではなくて仕様との事。
内部的に下記のようになっている。

if ((int)"1234abc" == 1234) {
  echo 'true';
} else {
  echo 'false';
}

(int)でint型にキャストされるため。

echo (int)"1234abc";すれば1234が出力される。

文字列型をint型にキャストすると以下のようになる。
echo (int)"1234abc";  //1234
echo (int)"0z1234abc";  //0
echo (int)"01234abc";  //1234
echo (int)"   1234abc";  //1234
echo (int)"abc";  //0

つまり、文字列の先頭が数値ならばそこの値を取得し、そうでなければ0になるとの事。

なので、両辺を""でくくって文字列型にそろえて比較するなどが必要。
ただし、両辺が数値型の場合は例外がある。

if ("1234.0" == "1234") {
  echo 'true';
} else {
  echo 'false';
}
この場合、文字列型で比較しているのでfalseなると思いきや、ならない。
PHPでは数値形式の文字列を比較する場合、整数として比較されるため。

なので、文字列の比較は"==="を使いましょうというお話。
perlでいうところの文字列比較eqと同じ使い方。

 

 

拍手[3回]

JavaScriptのクロスドメイン制限(外部ドメインのファイルを取得とか)

JavaScriptはセキュリティの関係上、JSファイルがある以外のドメインのファイルを参照できない。

解決する方法はいくつかあるみたいだけど、一番簡単な方法っぽいのはPHP等のCGIを経由させる事。

php(getdata.php)

<?php

  $url = 'http://exsample.com/data.xml';
  if(isset( $url )) {
    $file = readfile( $url );
  }
?>

JavaScript(jQuery)
$(function() {
 
  $.ajax({
    type: 'get',
    cache: false,
    dataType: 'xml',
    success: function(xml){
    //成功時の処理
    },
    error: function(){
    //失敗時の処理
    }
  });
});
 

拍手[4回]

JavaScriptでURLアドレスを取得する location.href

JavaScriptで現在のURLを取得したい場合、location.hrefを使用する。

alert ( "URL:" + location.href );


拍手[3回]

JavaScriptで正規表現を使ったグループマッチとか RegExp

正規表現オブジェクトとしてRegExpを使う。構文は下記の通り。

regexp = new RegExp(patern[, flag])


flagは"i","g","m"がある。
フラグとその意味
i→大文字・小文字を区別しない
g→2番目、3番目... にマッチする部分も検索する
m→複数行に対して検索する
複数を組み合わせる場合 igとか続けて書く

単純に文字列からある文字列を探す場合
  • strに"bc"を含んでいるか

str = "abcdef";
ret = new RegExp( "bc", "i" );
if ( str.match ( ret ) ){
  alert ("あるよ!")
}

new RegExpはすべてのものをオブジェクトとして扱うというJavaScriptのポリシーにあわせて用意されたものらしく、通常は下記の記述でよいらしい。
  • strに"bc"を含んでいるか

str = "abcdef";
if ( str.match ( /bc/i ) ){
  alert ("あるよ!")
}
 

正規表現を使う場合
  • strが時:分秒のように2桁の数値が":(コロン)"で区切られている文字列を検索する
str = "12:34:56";
if ( str.match ( /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]$/ ) ){
  alert ("あるよ!")
}
^[0-9]~~[0-9]$のところが正規表現の部分

グループマッチをさせたい場合フラグ"g"を指定する。
  • strが時:分秒のように2桁の数値が":(コロン)"で区切られている文字列を時、分、秒と取得する
str = "12:34:56". match(/(\d+):(\d+):(\d+)/);
alert ( RegExp.$1 + "時");
alert ( RegExp.$2 + "分");
alert ( RegExp.$3 + "秒");


詳しくはトホホ参照



拍手[3回]

ブログ内検索

最新コメント

広告

プロフィール

なんとなくはじめてみたよ

忍者ツールズプロフィールは終了しました

カウンター