Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

Ajaxの複数DIV更新ができない?!

cakephp->version:1.2.4.8284

prototype.js->version:1.6.0.3

どうやら入れ子になっているDIVじゃないと、複数DIVを一気に更新するのはダメみたいだなーと思った。

<?php
$ajax->link(Link’, ‘/test/update’, array(’update’ => array(’first’, ’second’)));

こんな感じでupdateのDIVを複数書くと更新できるよって話。すると、こういうJSが吐きだされる。

Event.observe('link1985653699', 'click', function(event) { 
   new Ajax.Updater(document.createElement('div'),'/test/update',
   {asynchronous:true, evalScripts:true,
    requestHeaders:['X-Update', 'first second']}) }, false);

で、よくわかっていないんだが、new Ajax.updaterの第1引数でDIV要素を作ってるので、requestHeadersで指定されるDIVはこのcreateElementしたDIVの中にあるっぽい。つまり、複数DIV更新するときはfirst,secondを入れ子にしないと更新できないようだ。

<div>
   <div id="first"></div>
   <div id="second"></div>
</div>

こんな感じ。・・・微妙だなぁ。

入れ子じゃないとダメとかさみしいので、この問題にお詳しい方のアドバイスお待ちします。