Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CI] Problem z XAJAXem, prosze o pomoc...
kopczyk
post 8.02.2008, 15:53:45
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 2
Dołączył: 5.01.2008
Skąd: Jelenia Góra

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z XAJAXem w moim ulubionym frameworku Code Igniter.
Zainstalowałem XAJAX wedle zaleceń WIKI CI. Wszystko chodzilo dobrze dopóki nie spróbowałem wysłać formularza
w sekcji meta umiesciłem funkcję JS:
Kod
<script type="text/javascript">
/* <![CDATA[ */
function submitSignup()
        {
            xajax.$('add_submit').disabled=true;
            xajax.$('add_submit').value="please wait...";
            xajax_add__action(xajax.getFormValues('form1'));
            return false;
        }
/* ]]> */
</script>


W kontrolerze za obsługę forma odpowiada metoda:
Kod
function add() {
     $this->xajax->registerFunction(array('add__action',&$this,'add__action'));
     $this->xajax->processRequest();

     $this->load->model('b_holiday_venuemodel');
     $data['Holiday_Venuelist'] = $this->b_holiday_venuemodel->findAll();

     $this->response['content'] = $this->load->view('backend/Holiday_Activity/Holiday_Activitydetails', $data,true);

     $this->load->view('backend/layout',$this->response);
   }


Za obsługę akcji odpowiada:

Kod
function add__action($form_data='') {
     $objResponse = new xajaxResponse();
     $objResponse->alert('form wyslany');
     return $objResponse;
   }


a tutaj mam taki formularz:

Kod
<form name="form1" id="form1" action="javascript:void(null);" onsubmit="javascript:submitSignup();return false;">
<input type='text' name='Name_Activity' id='Name_Activity' value='<?= $Name_Activity; ?>' />
<input type="submit" name="Submit" id="add_submit" value="Save">
</form>


Po wysłaniu formularza przycisk "save" zmienia wartość na "please wait..." i nic sie nie dzieje, nie wyskakuje okienko alert.

Natomiast gdy z funkcji JS z sekcji meta zmienię:
Kod
xajax_add__action(xajax.getFormValues('form1'));


na

Kod
xajax_add__action();


to wszystko gra (ale z wiadomych przyczyn dane z forma nie są wysłane)

Jest coś nie tak, ponieważ zauważyłem, że po kliknięciu na 'save' firebug w konsoli wypisuje, że nie znaleziono funkcji get_instance:
Cytat
<br />

<b>Fatal error</b>: Call to undefined function get_instance() in <b>/usr/local/apache/htdocs/ci/system/libraries/Input.php</b> on line <b>857</b><br />


Proszę pomóżcie bo dostaję już białej gorączki...

Ten post edytował kopczyk 8.02.2008, 16:18:19
Go to the top of the page
+Quote Post
Speedy
post 18.02.2008, 22:17:11
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

Ostrzeżenie: (0%)
-----


Nie korzystałem nigdy z xajaxa, ale z tego, co widzę, to wymaga on ingerencji w kod języka server-side (w tym wypadku php). Miałem kiedyś do czynienia z biblioteką, która również tak była zorganizowana. Jej nazwa to Sajax. Jest to nie wygodne i generuje bałagan w aplikacji. Skorzystaj sobie z jakiejś biblioteki do ajaxa, która nie wymaga ingerencji w kod php. Będziesz mógł się wtedy skupić na samym php i nie zawracać sobie głowy takimi problemami, jak ten, który opisujesz. Polecam mintajax i advAJAX. Inne popularne biblioteki też chyba są tak zorganizowane, jak powinny, ponieważ ułatwia to życie i umożliwia ich integrację z różnymi technologiami. Xajax jest jedną z pierwszych bibliotek do obsługi ajaxa w php, dlatego ma tak chybioną implementację tego zbioru technologii.


--------------------
Sygnatura niezgodna z regulaminem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 23:58