Всем привет Есть скрипт mds-job 2 Там при добавлении резюме или вакансии динамически формируются поля выбора города и профессии До этого все работало, а потом вдруг перестало В коде не лазил В форме добавления есть код Код | <tr align="left"> <td> <b><?php print ADMIN_TEMPLATE_ADD_PROFECY_INPUT_SELECT_RAZDEL; ?></b><font color="#ff0000">*</font><br> <select name="id_razdel" id="id_razdel" class="select" onChange="startReqData(id_razdel.value, 'profecy');"> <option value="0"><?php print ADMIN_TEMPLATE_ADD_PROFECY_OPTION_SELECT_RAZDEL; ?></option> <?php // блок выбора раздела из БД $query_rz = "SELECT SQL_CACHE id_razdel, name_razdel FROM $razdel_t ORDER BY id_razdel ASC"; $result_rz = mysql_query($query_rz); while ($line_rz = mysql_fetch_assoc($result_rz)) { print '<option value="' . $line_rz['id_razdel'] . '">' . $line_rz['name_razdel'] . '</option>' . "\r\n"; } ?> </select> <p class="tdhelp" style="margin: 0;"><?php print TEMPLATE_ADD_RESUME_INPUT_SELECT_RAZDEL_COMMENT; ?></p> </td> </tr>
|
Далее скрипт в файле loaddata.js Код | // ФУНКЦИЯ ЗАПРОСА ДАННЫХ function Do_Load(val_id, val_name, inferior) { var req = new JsHttpRequest();
req.onreadystatechange = function() { if (4 === req.readyState) { res = req.responseJS.res;
if('die' === res || !res) { clearData(val_name); document.getElementById('divid_' + val_name).innerHTML = ' '; return false; } else { loadDataRes(val_name, res, inferior); } } }
req.open(null, 'function/loaddata.php', true); req.send( {req_id: val_id, req_name: val_name } ); }
// ФУНКЦИЯ ИНИЦИАЛИЗАЦИИ function startReqData(id, name_id, inferior) { document.getElementById('divid_' + name_id).innerHTML = '<img src="template/images/progress.gif">';
var mess1; var mess2; var mess3; switch (getCookie('reml')) { case 'ua': mess1 = 'Неважливо'; mess2 = 'Виберіть професію'; mess3 = 'Виберіть місто'; break; case 'rus': default: mess1 = 'Неважно'; mess2 = 'Выберите профессию'; mess3 = 'Выберите город'; break; }
if (document.getElementById('s')) { var prSel_text = ctSel_text = mess1; } else { var prSel_text = mess2; var ctSel_text = mess3; }
switch (name_id) { case 'profecy': var select = document.getElementById('id_' + name_id); select.options.length = 0; select.options[select.options.length] = new Option(prSel_text, 0, false, true); break;
case 'city': var select = document.getElementById('id_' + name_id); select.options.length = 0; select.options[select.options.length] = new Option(ctSel_text, 0, false, true); break; }
Do_Load(id, name_id, inferior); }
// ФУНКЦИЯ ЗАГРУЗКИ ДАННЫХ В ДОКУМЕНТ function loadDataRes(name, data, inferior) { var select = document.getElementById('id_' + name); select.options.length = 1;
for (var i in data) { // добавляем новый объект OPTION к нашему SELECT if (inferior == i) { select.options[select.options.length] = new Option(data[i], i, true, true); } else { select.options[select.options.length] = new Option(data[i], i, false, false); } } document.getElementById('divid_' + name).innerHTML = ' '; }
// ФУНКЦИЯ ОЧИСТКИ ДАННЫХ В ДОКУМЕНТЕ function clearData(id_data) { var mess1; var mess2; switch (getCookie('reml')) { case 'ua': mess1 = 'Неважливо'; mess2 = 'Немає даних'; break; case 'rus': default: mess1 = 'Неважно'; mess2 = 'Нет данных'; break; }
if (document.getElementById('s')) { var prSel_text = ctSel_text = mess1; } else { var prSel_text = ctSel_text = mess2; }
switch (id_data) { case 'profecy': var select = document.getElementById('id_' + id_data); select.options.length = 0; select.options[select.options.length] = new Option(prSel_text, 0, true, false); break;
case 'city': var select = document.getElementById('id_' + id_data); select.options.length = 0; select.options[select.options.length] = new Option(ctSel_text, 0, true, false); break; } }
function setOptionVal(select_id, option_val) { var objSelect = document.getElementById('id_' + select_id);
for (var i = 0; i < objSelect.length; i++) { if (objSelect.options[i].value === option_val) { objSelect.options[i].selected = 1; } } }
/******* ЗАГРУЗКА ДАННЫХ ПО ВАКАНСИЯМ И РЕЗЮМЕ ДЛЯ ДИНАМИЧЕСКОГО ПОКАЗА И СКРЫТИЯ *******/ function LoadInfoBoard (id, type) { var show = 'table-row'; if(navigator.appName == 'Microsoft Internet Explorer') show = 'block';
tr_id = type + '_' + id; img_id = 'img' + type + '_' + id; if (document.getElementById(tr_id).style.display == 'none') { document.getElementById(tr_id).style.display = show; document.getElementById(img_id).src = 'template/images/resize_0.gif'; } else { document.getElementById(tr_id).style.display = 'none'; document.getElementById(img_id).src = 'template/images/resize_1.gif'; } }
|
и файл запрса loaddata.php Код | <?php
function clean_url($url) { if (!$url) return;
$url = str_replace('http://', '', $url); if (strtolower(substr($url, 0, 4)) === 'www.') $url = substr($url, 4); $url = explode('/', $url); $url = reset($url); $url = explode(':', $url); $url = reset($url);
return $url; }
if (clean_url($_SERVER['HTTP_REFERER']) !== clean_url($_SERVER['HTTP_HOST'])) die ("Hacking attempt!");
require_once '../inc/configreq.php'; require_once '../inc/JsHttpRequest.php';
$JsHttpRequest =& new JsHttpRequest('UTF-8'); ClearDataFromRequest(); $req_id = isset($_REQUEST['req_id']) ? $_REQUEST['req_id'] : false; $req_name = isset($_REQUEST['req_name']) ? $_REQUEST['req_name'] : false;
/***** ПОДГРУЖАЕМ ДАННЫЕ ПРИ ВЫБОРЕ РАЗДЕЛОВ И ОБЛАСТЕЙ *****/ if ($req_id && $req_name) { if (ctype_digit($req_id) && ctype_alpha($req_name)) { switch($req_name) { case 'profecy': $table = $profecy_t; $orderby = 'ORDER BY name_profecy ASC'; break;
case 'city': $table = $city_t; $orderby = 'ORDER BY capital DESC, name_city ASC'; break;
default: $_RESULT = array('res' => 'die'); // В результате, Пользователь получит сообщение об ошибке echo 'Error: Request Data is Incorrect.'; return false; }
$query = "SELECT SQL_CACHE id_$req_name, name_$req_name FROM $table WHERE id_parent='$req_id' $orderby"; $result = mysql_query($query);
$respResult = false; while ($line = mysql_fetch_assoc($result)) { $respResult[$line['id_' . $req_name]] = $line['name_' . $req_name]; }
$_RESULT = array('res' => $respResult); // Отправляем результат echo 'Request Data of Successful.'; return true; } else { $_RESULT = array('res' => 'die'); // В результате, Пользователь получит сообщение об ошибке echo 'Error: Request Data is Incorrect.'; return false; } } else { $_RESULT = array('res' => 'die'); // В результате, Пользователь получит сообщение об ошибке echo 'Error: Non Data in Request.'; return false; }
?>
|
Методом тыка было определено, что в функции Do_Load переменная res не определена, поэтому в форму данные не подгружаются В чем может быть проблема? Это сообщение отредактировал(а) Aliance - 2.11.2012, 10:08
|