Exorcist
Новичок
Простые элементы Jquery работают нормально. Пытался сработать Ajax, что имеем.
(Просто без Smarty локальный пример работает)
Ajax.php
Ajax.js
Вывод Smarty
html документы
При выборе Расход, приход поле region_id меняется на загрузка, в FireBug ответ
в виде Json
{"type":"success","regions":[{"id":"1","title":"A"},{"id":"2","title":"B"},{"id":"3","title":"C"},{"id":"4","title":"D"}]}
Все как надо.
Заголовки ответа вот
Cache-Control no-cache, max-age=1
Connection Keep-Alive
Content-Length 122
Content-Type text/html; charset=windows-1251
Date Tue, 17 Apr 2012 04:23:50 GMT
Expires Tue, 17 Apr 2012 04:23:51 GMT
Keep-Alive timeout=5, max=94
Pragma no-cache
Proxy-Connection Keep-Alive
Server Apache
Via 1.1 MAIN
X-Powered-By PHP/5.3.10
Создал папку test на хостинге - все идельно пашет, Но когда совмещаю это со смарти просто непонятнки
Грешу на кэшинг или еще что.
(Просто без Smarty локальный пример работает)
Ajax.php
PHP:
<?php
$regions = array();
$regions[] = array('id'=>'1', 'title'=>'A');
$regions[] = array('id'=>'2', 'title'=>'B');
$regions[] = array('id'=>'3', 'title'=>'C');
$regions[] = array('id'=>'4', 'title'=>'D');
$result = array('type'=>'success', 'regions'=>$regions);
print json_encode($result);
?>
PHP:
$(document).ready(function () {
$('#country_id').change(function () {
var country_id = $(this).val();
if (country_id == '0') {
$('#region_id').html('');
$('#region_id').attr('disabled', true);
return(false);
}
$('#region_id').attr('disabled', true);
$('#region_id').html('<option>загрузка...</option>');
var url = '/modules/goods/ajax.php';
$.get(
url,
"country_id=" + country_id,
function (result) {
if (result.type == 'error') {
alert('error');
return(false);
}
else {
var options = '';
$(result.regions).each(function() {
options += '<option value="' + $(this).attr('id') + '">' + $(this).attr('title') + '</option>';
});
$('#region_id').html(options);
$('#region_id').attr('disabled', false);
}
},
"json"
);
});
});
PHP:
$GLOBALS['tmpl']->assign("content", $GLOBALS['tmpl']->fetch($this->tpl_dir . "transaction_of_finance_FormRecord.tpl"));
PHP:
<select name="country_id" id="country_id">
<option value="0" selected>- тип операции -</option>
<option value="1">Расход</option>
<option value="2">Приход</option>
</select>
<p>Регион:</p>
<select name="region_id" id="region_id" disabled="disabled">
<option value="0"> </option>
</select>
в виде Json
{"type":"success","regions":[{"id":"1","title":"A"},{"id":"2","title":"B"},{"id":"3","title":"C"},{"id":"4","title":"D"}]}
Все как надо.
Заголовки ответа вот
Cache-Control no-cache, max-age=1
Connection Keep-Alive
Content-Length 122
Content-Type text/html; charset=windows-1251
Date Tue, 17 Apr 2012 04:23:50 GMT
Expires Tue, 17 Apr 2012 04:23:51 GMT
Keep-Alive timeout=5, max=94
Pragma no-cache
Proxy-Connection Keep-Alive
Server Apache
Via 1.1 MAIN
X-Powered-By PHP/5.3.10
Создал папку test на хостинге - все идельно пашет, Но когда совмещаю это со смарти просто непонятнки
Грешу на кэшинг или еще что.