jQueryにはドットが使えない

htmlでidにドットがついてるものがあってjQueryで呼び出すとエラーが..

<ul>
  <li id="sample.0.item">1st</li>
  <li id="sample.1.item">2nd</li>
</ul>

こうしたらいいみたいです

$('#sample\\.0\\.item').val()

Cakephpでajaxを使って非同期にすっきりpostする clickイベント版

Cakephpでajaxを使って非同期にすっきりpostする | bgbgbg
ではsubmit buttonを使って、submit時にformをserializeして送ってました

buttonのidをshowbtnを指定して

$('#showbtn').click(function() {                                                               
    event.preventDefault();                                                                       
    event.stopPropagation();                                                                      

    $.ajax({                                                                                      
        type: 'POST',                                                                             
        url: '<?php echo $this->Html->Url(array('action'=>'save'));?>',                   
        data: { data: $('form').serialize() },                                                      
    }).done(function(data) {
        // 後処理                                                                      
    });                                                                                           
});

$(‘form’).serialize()でformの内容がとれます

Cakephpでajaxを使って非同期にすっきりpostする

CakephpでFormの値をjQueryを使って非同期にpostの値を渡してみました

まずViewでformをつくります

echo $this->Form->create('sample');
echo $this->Form->checkbox('test');
echo 
// などなど..
echo $this->Form->end();

formのsubmitイベントで、phpへpostします
jQueryのserializeをつかって、formの値をクエリ文字列にします
.serialize() | jQuery API Documentation

$('form').on('submit', function() {                                                               
    event.preventDefault();                                                                       
    event.stopPropagation();                                                                      

    $.ajax({                                                                                      
        type: 'POST',                                                                             
        url: '<?php echo $this->Html->Url(array('action'=>'save'));?>',                   
        data: { data: $(this).serialize() },                                                      
    }).done(function(data) {
        // 後処理                                                                      
    });                                                                                           
});     

コントローラーのsaveアクションへアクセス
これで
$this->data
にふつうのformのpostした値が入ってきます

public function save()
{
    $this->layout = null;
    parse_str($this->data);

    $ret = $this->SomeModel->saveAll($data);
    // などなど..
}

PHP: parse_str – Manual
で、クエリ文字列を変数に落とし込めばそのまま
$dataにまるごとデータが入ってきます
(jQueryでdata: で渡したので)

だいぶCakeらしくできた気がします

jQueryで非表示にする

jQueryを使って非表示にするには

<div id="box1" class="box">this is box1.</div>
<div id="box2" class="box">this is box2.</div>
<div id="box3" class="box">this is box3.</div>

id指定だと

$('#box1').hide();

boxクラスで全部非表示にだと

$('.box').each( function() { $(this).hide(); } );

シンプルにこれでもいい

$('#box1').css('display', 'none');
$('.box').each( function() { $(this).('display', 'none'); } );