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>
/* <![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);
}
$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;
}
$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>
<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 />
<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...