2014年1月28日火曜日

フォームのデータを配列で取得する

nameの部分を配列でもってやればよい。

http://antonsan.net/study/php/php008.php

!-- 入力フォーム -->
<div>
<p>何が好き?</p>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">
  <input type="checkbox" name="foods[]" value="ごはん">ごはん
  <input type="checkbox" name="foods[]" value="ラーメン">ラーメン
  <input type="checkbox" name="foods[]" value="うどん">うどん<br />
  <input type="checkbox" name="foods[]" value="そば">そば
  <input type="checkbox" name="foods[]" value="パン">パン
  <input type="checkbox" name="foods[]" value="小麦粉">小麦粉<br /><br />
  <input type="submit" value="送信" name="btn">
</form>
</div>

<div>
<?php
//入力内容を表示する
echo "<p>あなたの好きなもの</p>\n";
echo "<p>";
for ($i = 0; $i < count(@$_POST["foods"]); $i++){
  echo @$_POST["foods"][$i]." ";
}
echo "</p>\n";
?>
</div>

2014年1月27日月曜日

クラス名をワイルドカードで取得したいとき

smartyでforeachを使ってて、
<input class="hoge_<{$smarty.foreach.test_info.iteration}>">
みたいなのがあって、それぞれのクラス名を取得したいとします

DOMで
getElementsByClassName()
を使って取得しようとすると・・・

getElementsByClassName("hoge*")

無理!!


ただ、getElementById()の場合は大丈夫なようです。

そんなときはjQueryを使えば解決します。

$(':input[class^=hoge]')

2014年1月16日木曜日

jQueryで画像をマウスオーバーしてメイン画像を切り替えると画像が消える件

http://wataame.sumomo.ne.jp/archives/1841

のサイトを参考にjQueryで画像を切り替える処理を入れてみたところ、高速でマウスオーバーすると画像が段々と薄くなっていって消えてしまった。

意味わからず使ってたけど、調べてみると
fadeOut(50)ってのが0.05秒かけてフェードアウトするという意味だそう。
fadeIn(200)もまた然り。

ということでこれをもっと短い時間でフェードアウト、フェードインしてやればよい。
fadeOut(10)とかfadeIn(10)みたいな感じで。

2014年1月9日木曜日

Zendでファイルのアップロード&ファイルパスの保存

色々、無理矢理な気もするけど、とりあえずアップ出来た。
まずはここを参考に。
http://asklife.info/archives/1773

// 画像ファイルをストレージに格納
require_once 'Zend/File/Transfer/Adapter/Http.php';
require_once 'Zend/File/Transfer.php';
  
$adapter = new Zend_File_Transfer_Adapter_Http();
$adapter->setDestination('/var/www/任意のディレクトリ');

// エラー処理
if (!$adapter->receive()) {
    $messages = $adapter->getMessages();
    echo implode("\n", $messages);
}

// ファイルのパスを取得  
$upload = new Zend_File_Transfer();
$upload->receive();
$imagename = $upload->getFileName();  // ファイル名を取得する
$imagename = substr($imagename, 4);    // デフォルトで"tmp/"とついてるので削除
$url = 'http://ファイルのパス'.$imagename; 

// 更新データ
$data = array(
    'image' => $url
);
//  DBを更新
$result = $db->insert('tablename', $data);

格納先のフォルダはパーミッションを777に設定しておくのを忘れずに。

2014年1月4日土曜日

Smartyで変数の表示が0になる件

Smartyを使ってたら変数が0になっていた。
どうやら配列のキー名に「-(ハイフン)」を使っているとだめらしい。

何やら解決法もあるみたい。
http://babie.hatenablog.com/entry/20060306/p2

ハマりそうなので、DBのカラム名を変えて対応した。

Bootstrap3.0でmodalとformを組み合わせる

ということで今回はBootstrapについて。

ここを見ながら
http://blog.moccori.com/d/2012-10-09

$(function() {
  var options = {
    clearForm: true,
    resetForm: true,
    dataType : 'html',
    success: function(response) {
      $('#result-area').html(response);
      $('#modalForm').modal('hide');
    },
  };
  $('#modal-form').ajaxForm(options);
});

ここのmodal('hide')がBootstrap3.0では効かない。
なんか色々調べてたら、若干方法が変わってるらしい。
http://stackoverflow.com/questions/20297783/modalel-modalshow-and-modalel-modalhide-not-working

$(#modal-Form).modal(); // 初期化
$(#modal-Form)modal('hide');

ってやったら動く模様。

2014/1/10 追記
なんか$(#modal-Form)modal('hide')だけでも動くようになっていた!
bootstrap.jsを更新したからかな?