Trace: » jquery
jQuery i Cakephp
Wysyłanie zmiennych metoda POST
Aby zachowac konwencje nazewnictwa pol formularzy, jaka jest stosowana w cake musimy stworzyc po stronie javascript odpowiednia zmienna ktora przeslemy do skryptu php.
Najprostszym sposobem jest skorzystanie z pluginu FastSerialize ktory sparsuje nam formularz i sam stworzy zmienna w odpowiednim formacie.
Jesli jednak chcemy reczenie stworzyc zmienna z odpowiednimi danymi w formacie identycznym jak ten ktory przesylany jest przy normalny wyslaniu formularza, mozemy zrobic to w nastepujacy sposob:
<script language="JavaScript">
//kazda zmienna bedzie kolejnym elementem tablicy
params = [];
//uzywajac metody push dodajemy kolejne elementy
// jako name podajemy name inputa a jako value - value inputa:)
params.push({name: 'data[ftp][host]', value: 'host'})
// tablica elementow
params.push({name: 'data[ftp][host][]', value: 'host1'})
params.push({name: 'data[ftp][host][]', value: 'host2'})
// stworzona zmienna wysylamy metoda POST - odpowiedz wyswietli alert
$.post('url', params, function(r){alert(r)});
</script>
Współpraca jQuery i Prototype
Jak wiadomo, do cake standardowo dołączana jest biblioteka Prototype. Zarówno w jQuery, jak i Prototype podstawową funkcją jest $(). Aby dodać jQuery i uniknąć konfliktu związanego z nadpisaniem funkcji $(), należy zastosować kod:
<?php
echo $javascript->link('jquery');
echo $javascript->codeBlock('var $j = jQuery.noConflict();');
?>
Dzięki temu wywołując $() używamy Prototype, natomiast wywołując $j() używamy jQuery. Na stronie jquery.com opisanie są również inne sposoby rozwiązania tego problemu.