Mam formularz w którym pole select z miastami, gdzie po wybraniu regionu ładuje się dynamicznie za pomocą Ajax.
Nie wiem dlaczego formularz nie przesyła wybranej opcji z pola select (miasta), w ogóle nic nie przesyła tak jakby tego pola nie było.
Dodam, że przed wybraniem regionu, pole select (miasta) jest ładowane przez php z domyślnymi opcjami i w momencie wysłania dane z niego są przesyłane.
Kod formularza:
<form action="?" method="get" id="CountryForm" name="CountryForm" style="border:none" onSubmit="nieaktywne();">
<?php $db = & JFactory::getDBO(); ?> <div class="htl-box-parm-title"><span>Kraj: </span></div> <div class="htl-box-parm-select"> <?php $query = 'SELECT c.id AS value, c.name AS text' . ' FROM #__hg_countries AS c' . ' LEFT JOIN #__hg_hotelitems AS i ON i.country = c.id' . ' WHERE c.id ='.$this->country->id . ' AND i.country > 0' . ' AND c.published = 1' . ' GROUP BY c.name ASC' ; $db->setQuery( $query ); $result = $db->loadObjectList(); $kraj = JHTML::_('select.genericlist', $result, 'kraj', 'class="inputbox" size="1"', 'value', 'text', $Selected); ?> </div> <div class="htl-box-parm-title"><span>Region: </span></div> <div class="htl-box-parm-select"> <?php $query = 'SELECT c.id AS value, c.name AS text' . ' FROM #__hg_states AS c' . ' WHERE country ='.$this->country->id . ' ORDER BY text ASC' ; $db->setQuery( $query ); $result = $db->loadObjectList(); $regiony[] = JHTML::_('select.option', 0, JText::_('wszystkie regiony') ); $javascript = 'onChange="ChangeCity(this.value)"'; $regiony = JHTML::_('select.genericlist', $regiony, 'region', 'class="inputbox" size="1"' . $javascript, 'value', 'text', $Selected); ?> </div> <div class="htl-box-parm-title"><span>Miasto: </span></div> <div class="htl-box-parm-select"> <div id="AjaxMiasto"> <?php $where = ' WHERE c.country = '.$this->country->id; if ($_GET['region']) { $where .= ' AND c.states = '.$_GET['region']; } $query = 'SELECT c.id AS value, c.name AS text' . ' FROM #__hg_cities AS c' .$where . ' ORDER BY text ASC' ; $db->setQuery( $query ); $result = $db->loadObjectList(); $miasto[] = JHTML::_('select.option', 0, JText::_('Wszystkie miasta') ); $miasto = JHTML::_('select.genericlist', $miasto, 'miasto', 'class="inputbox" size="1"', 'value', 'text', $Selected); ?> </div> <input type="submit" value="wyślij";/> </div> <div id="htl-parm-filter"> <div class="htl-box-parm-title"><span>Wyżwienie: </span></div> <div class="htl-box-parm-select"> <?php ?> </div> <div class="htl-box-parm-title"><span>Rodzaj zakwaterowania: </span></div> <div class="htl-box-parm-select"> <?php ?> </div> <input type="submit" value="wyślij";/> </div> </form>
Kod Ajaxa (ChangeCity):
Kod
function ChangeCity(a){
$('AjaxMiasto').setHTML('<div class="inputbox-img"><span>Wczytywanie danych</span><img src="images/ajax_loader.gif"></div>');
var url = '<?php echo JURI::base();?>index.php?option=com_hotelguide&format=raw&task=ChangeCity';
var ajax = new Ajax(url, {
method: 'get',
update: $('AjaxMiasto'),
data: 'region='+a+'&kraj=<?php echo $this->country->id ?>'
});
ajax.request.delay(50, ajax);
}
function uncheckAll(name)
{
var ele = 'wyzywienie[]';
if (name != true) {
ele = 'wyzywienie[]';
}
var theForm = document.CountryForm;
for (i=0; i<theForm.elements.length; i++) {
if (theForm.elements[i].name==ele && theForm.elements[i].value > 0)
theForm.elements[i].checked = false;
}
}
function uncheck(name)
{
var ele = 'wyzywienie[]';
if (name != true) {
ele = 'wyzywienie[]';
}
var theForm = document.CountryForm;
for (i=0; i<theForm.elements.length; i++) {
if (theForm.elements[i].name==ele && theForm.elements[i].value == -1 && theForm.elements[i].checked == true)
theForm.elements[i].checked = false;
}
}
function nieaktywne() {
form = document.forms['CountryForm'];
if(form.elements['region'].value == '0') { form.elements['region'].disabled = "true"; }
if(form.elements['filter_order'].value == '') { form.elements['filter_order'].disabled = "true"; }
if(form.elements['filter_order_Dir'].value == '') { form.elements['filter_order_Dir'].disabled = "true"; }
}
$('AjaxMiasto').setHTML('<div class="inputbox-img"><span>Wczytywanie danych</span><img src="images/ajax_loader.gif"></div>');
var url = '<?php echo JURI::base();?>index.php?option=com_hotelguide&format=raw&task=ChangeCity';
var ajax = new Ajax(url, {
method: 'get',
update: $('AjaxMiasto'),
data: 'region='+a+'&kraj=<?php echo $this->country->id ?>'
});
ajax.request.delay(50, ajax);
}
function uncheckAll(name)
{
var ele = 'wyzywienie[]';
if (name != true) {
ele = 'wyzywienie[]';
}
var theForm = document.CountryForm;
for (i=0; i<theForm.elements.length; i++) {
if (theForm.elements[i].name==ele && theForm.elements[i].value > 0)
theForm.elements[i].checked = false;
}
}
function uncheck(name)
{
var ele = 'wyzywienie[]';
if (name != true) {
ele = 'wyzywienie[]';
}
var theForm = document.CountryForm;
for (i=0; i<theForm.elements.length; i++) {
if (theForm.elements[i].name==ele && theForm.elements[i].value == -1 && theForm.elements[i].checked == true)
theForm.elements[i].checked = false;
}
}
function nieaktywne() {
form = document.forms['CountryForm'];
if(form.elements['region'].value == '0') { form.elements['region'].disabled = "true"; }
if(form.elements['filter_order'].value == '') { form.elements['filter_order'].disabled = "true"; }
if(form.elements['filter_order_Dir'].value == '') { form.elements['filter_order_Dir'].disabled = "true"; }
}
Stronka postawiona na cms joomla 1.5.22
Pozdrawiam