adamsalex
Newbie-
Posts
10 -
Joined
-
Last visited
adamsalex's Achievements
Explorer (1/14)
0
Reputation
-
Все всем спасибо кто участвовал - разобрался, проблема была в передаче нескольких запросов сразу в 1 селект + куча мусора, как только почистил мусор и стал передавать нормальный HTML все стало ОК
-
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; include('db_login.php'); /*echo '<head>'; echo '<title>' .$f. '|' .$m. '|' .$y. '</title>'; echo "<meta http-equiv='X-UA-Compatible' content='IE=7'/> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <meta name='robots' content='index, follow' /> <link rel='stylesheet' href='css/reset.css' type='text/css'/> <link rel='stylesheet' href='css/main.css' type='text/css'/>"; echo '</head>';*/ // не забываем менять на реальный сервер czmysql1 $db = new mysqli($db_server, $db_login, $db_pass, $db_name); $db->set_charset("utf8");// говорим что обрабатываем в скрипте в кодировке utf8 if(!$db) { // Show error if we cannot connect. echo 'ERROR: Could not connect to the database.'; } else { //инициализируем переменные if(isset($_GET['t'])) $t=$_GET['t']; // HTML -> PHP передаем type if(isset($_GET['f'])) $f=$_GET['f']; // HTML -> PHP передаем firm if(isset($_GET['m'])) $m=$_GET['m']; // HTML -> PHP передаем model if(isset($_GET['y'])) $y=$_GET['y']; // HTML -> PHP передаем year echo'<option value="">выберите..</option>'; // подставляем первое значение в option для всех столбцов // получаем в форму название фирм из БД if(isset($_GET['f']) == '') { $query = $db->query("SELECT firm FROM firm WHERE type_id = '".$t."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'.$result->firm.'" >' .$result->firm. '</option>'; } } // получаем в форму название моделей из БД c проверкой что m пока не существует if(isset($_GET['m']) == '') { $query = $db->query("SELECT model FROM type,firm,model WHERE type.type_id=firm.type_id AND firm.firm_id=model.firm_id AND type.type_id='" .$t. "' AND firm.firm = '".$f."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'.$result->model.'" >' .$result->model. '</option>'; } } // получаем в форму год из БД if(isset($_GET['y']) == '') { $query = $db->query("SELECT year FROM type,firm,model,year WHERE type.type_id=firm.type_id AND firm.firm_id=model.firm_id AND model.model_id=year.model_id AND type.type_id='" .$t. "' AND firm.firm = '".$f."' AND model.model ='".$m."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'. $result->year.'" >' .$result->year. '</option>'; } } // получаем в форму кузов из БД $query = $db->query("SELECT frame FROM type,firm,model,year,frame WHERE type.type_id=firm.type_id AND firm.firm_id=model.firm_id AND model.model_id=year.model_id AND year.year_id=frame.year_id AND type.type_id='" .$t. "' AND firm.firm = '".$f."' AND model.model ='".$m."' AND year.year='".$y."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'. $result->frame.'" >' .$result->frame. '</option>'; } } $mysqli->close(); ?>
-
сделал - ошибка осталась xml is null передает такой код ПараметрыЗаголовкиОтветHTML <?xml version="1.0" encoding="UTF-8"?><option value="">выберите..</option><option value ="SUZUKI" >SUZUKI</option><option value ="DAIHATSU" >DAIHATSU</option><option value ="FUSO [MITSUBISHI_TRUCKS]" >FUSO [MITSUBISHI_TRUCKS]</option><option value ="HINO" >HINO</option><option value ="HONDA" >HONDA</option><option value ="ISUZU" >ISUZU</option><option value ="LEXUS" >LEXUS</option><option value ="MAZDA" >MAZDA</option><option value ="MITSUBISHI" >MITSUBISHI</option><option value ="NISSAN" >NISSAN</option><option value ="SUBARU" >SUBARU</option><option value ="TOYOTA" >TOYOTA</option><option value ="UD NISSAN_DIESEL" >UD NISSAN_DIESEL</option><br />
-
Да... теперь пишет xml is null var options = xml.getElementsByTagName('option'); строчку <?xml version="1.0" encoding="UTF-8"?> прописал в index.html, если прописать в load_form_ajax.php, то так? echo '<xml version="1.0" encoding="UTF-8">';
-
ага сделал if (xmlhttp.readyState==4 && xmlhttp.status==200) { var para = document.createElement("option"); var txt = document.createTextNode(xmlhttp.responseXML); para.appendChild(txt); document.getElementById('parts_firm').appendChild(para); } теперь выдает в selecte [object] - где то я "DOM не достроил"
-
Теперь все ок- в load_form_ajax.php приходит <option value="">выберите..</option><option value ="SUZUKI" >SUZUKI</option><option value ="DAIHATSU" >DAIHATSU</option><option value ="FUSO [MITSUBISHI_TRUCKS]" >FUSO [MITSUBISHI_TRUCKS]</option><option value ="HINO" >HINO</option><option value ="HONDA" >HONDA</option><option value ="ISUZU" >ISUZU</option><option value ="LEXUS" >LEXUS</option><option value ="MAZDA" >MAZDA</option><option value ="MITSUBISHI" >MITSUBISHI</option><option value ="NISSAN" >NISSAN</option><option value ="SUBARU" >SUBARU</option><option value ="TOYOTA" >TOYOTA</option><option value ="UD NISSAN_DIESEL" >UD NISSAN_DIESEL</option> в HTML форме все вставляется в один селект сплошной строкой насколько я понимаю нужно делать цикл которого у меня не хватает в js - сейчас код такой xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var para = document.createElement("option"); var txt = document.createTextNode(xmlhttp.responseText); para.appendChild(txt); document.getElementById('parts_firm').appendChild(para); } } xmlhttp.open("GET","load_form_ajax.php?t="+str,true); xmlhttp.send(); }
-
В итоге как должно быть код load_form_ajax.php , даже если комментировать все в head результат аналогичный <?php include('db_login.php'); echo '<head>'; echo '<title>' .$f. '|' .$m. '|' .$y. '</title>'; echo "<meta http-equiv='X-UA-Compatible' content='IE=7'/> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <meta name='robots' content='index, follow' /> <link rel='stylesheet' href='css/reset.css' type='text/css'/> <link rel='stylesheet' href='css/main.css' type='text/css'/>"; echo '</head>'; $db = new mysqli($db_server, $db_login, $db_pass, $db_name); $db->set_charset("utf8");// говорим что обрабатываем в скрипте в кодировке utf8 if(!$db) { // Show error if we cannot connect. echo 'ERROR: Could not connect to the database.'; } else { //инициализируем переменные if(isset($_GET['t'])) $t=$_GET['t']; // HTML -> PHP передаем type if(isset($_GET['f'])) $f=$_GET['f']; // HTML -> PHP передаем firm if(isset($_GET['m'])) $m=$_GET['m']; // HTML -> PHP передаем model if(isset($_GET['y'])) $y=$_GET['y']; // HTML -> PHP передаем year echo'<option value="">выберите..</option>'; // подставляем первое значение в option для всех столбцов // получаем в форму название фирм из БД if(isset($_GET['f']) == '') { $query = $db->query("SELECT firm FROM firm WHERE type_id = '".$t."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'.$result->firm.'" >' .$result->firm. '</option>'; } } // получаем в форму название моделей из БД c проверкой что m пока не существует if(isset($_GET['m']) == '') { $query = $db->query("SELECT model FROM type,firm,model WHERE type.type_id=firm.type_id AND firm.firm_id=model.firm_id AND type.type_id='" .$t. "' AND firm.firm = '".$f."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'.$result->model.'" >' .$result->model. '</option>'; } } // получаем в форму год из БД if(isset($_GET['y']) == '') { $query = $db->query("SELECT year FROM type,firm,model,year WHERE type.type_id=firm.type_id AND firm.firm_id=model.firm_id AND model.model_id=year.model_id AND type.type_id='" .$t. "' AND firm.firm = '".$f."' AND model.model ='".$m."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'. $result->year.'" >' .$result->year. '</option>'; } } // получаем в форму кузов из БД $query = $db->query("SELECT frame FROM type,firm,model,year,frame WHERE type.type_id=firm.type_id AND firm.firm_id=model.firm_id AND model.model_id=year.model_id AND year.year_id=frame.year_id AND type.type_id='" .$t. "' AND firm.firm = '".$f."' AND model.model ='".$m."' AND year.year='".$y."'"); while ($result = $query ->fetch_object()) { echo '<option value ="'. $result->frame.'" >' .$result->frame. '</option>'; } } $mysqli->close(); ?>
-
приходит вся страница с тэгами - в которой есть нужные данные -все броузеры кроме IE корректно отражают информацию
-
Пишет Неизвестная ошибка выполнения Код 0 Строка 31 символ 5 - как раз начинается код document.getElementById("parts_firm").innerHTML=xmlhttp.responseText; полный код ФУНКЦИИ function showFirm(str) { if (str=="") { document.getElementById("parts_firm").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("parts_firm").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","load_form_ajax.php?t="+str,true); xmlhttp.send(); }
-
Добрый день, не работает innerHTML в IE. Погуглил в итоге необходимо переписать с помощью DOM -не могу до конца понять как. Суть необходимо - из БД mySQL запросами через AJAX получать в select значения (асинхронно). В комментарии кода "строим DOM" насколько я понял не хватает каких то параметров. Index.html //функция получения названия фирм из БД function showFirm(str) { if (str=="") { document.getElementById("parts_firm").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { // строим DOM var para = document.createElement("option"); var txt = document.createTextNode(xmlhttp.responseText); para.appendChild(txt); document.getElementById('parts_firm').appendChild(para); //Через innerHTML не работает в IE //document.getElementById("parts_firm").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","load_form_ajax.php?t="+str,true); xmlhttp.send(); } ...... <td>Производитель:</td> <td> <!-- передаем в select id="parts_firm" инфо из БД, запускаем showModel() --> <select id="parts_firm" name="firm" onchange="showModel(this.value)"> <option></option> </select>