htmlでidにドットがついてるものがあってjQueryで呼び出すとエラーが..
<ul>
<li id="sample.0.item">1st</li>
<li id="sample.1.item">2nd</li>
</ul>
こうしたらいいみたいです
$('#sample\\.0\\.item').val()
ひびのきろく
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する | 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で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を使って非表示にするには
<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'); } );