Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Не работает php код в javascript-е

#11 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5
0

Отправлено 23 Апрель 2013 - 16:17

isvetlichniy, спасибо большое! переделал, заработало! у меня еще вопрос будет.


  • 0

#12 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 23 Апрель 2013 - 20:13

isvetlichniy, fedornabilkin, я начал дальше доделывать этот скрипт. третий input должен выводить заведения выбранного города. на этот раз там также N/A, в исходном коде тоже ничего нет. сам скрипт такой
<!--
// Формируем массив заведений
var aClubsValues = new Array(
"<?php echo $base->showClubs(8); ?>",
"<?php echo $base->showClubs(10); ?>"
);
// ф-ция, возвращающая массив городов по заданной стране
function getClubsValuesByHouse(index){
    var sClubsValues = aClubsValues[index];
    return sClubsValues.split(","); // преобразуем строку в массив городов
}
// ф-ция, выводящая динамически список городов
function MkClubsValues(index){
    var aCurrClubsValues = getClubsValuesByStreet(index);
    var nCurrClubsValuesCnt = aCurrClubsValues.length;
    var oClubsList = document.forms["house"].elements["clubs"];
    var oClubsListOptionsCnt = oClubsList.options.length;
    oClubsList.length = 0; // удаляем все элементы из списка городов
    for (i = 0; i < nCurrClubsValuesCnt; i++){
	    // далее мы добавляем необходимые города в список
	    if (document.createElement){
		    var newClubsListOption = document.createElement("OPTION");
		    newClubsListOption.text = aCurrClubsValues[i];
		    newClubsListOption.value = aCurrClubsValues[i];
		    // тут мы используем для добавления элемента либо метод IE, либо DOM
		    (oClubsList.options.add) ? oClubsList.options.add(newClubsListOption) : oClubsList.add(newClubsListOption, null);
	    }else{
		    // для NN3.x-4.x
		    oClubsList.options[i] = new Option(aCurrClubsValues[i], aCurrClubsValues[i], false, false);
	    }
    }
}
// инициируем изменение элементов в списке городов, в зависимости от текущей страны
MkClubsValues(document.forms["house"].elements["clubs"].selectedIndex);
//-->
опера выдает ошибку [23.04.2013 21:00:55] JavaScript - http://localhost/par...?login=kuchuluk
Inline script thread
Uncaught exception: TypeError: Cannot convert 'document.forms["house"]' to object
Error thrown at line 127, column 0 in http://localhost/par...login=kuchuluk:
MkClubsValues(document.forms["house"].elements["clubs"].selectedIndex);

метод showClubs такой
public function showClubs($where)
{
  $data = $this->get("SELECT id, name FROM clubs WHERE city_id = ".$where);
  foreach($data as $d)
  {
   $text = $text.$d["name"].", ";
  }
  $a = strlen($text)-2;
  $text = substr($text,0,$a);
  return $text;
}
вывожу этот метод в другом месте страницы, выводится строка содержащая заведения города
  • 0

#13 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Апрель 2013 - 10:53

привели код формы
  • 0

#14 Kuchuluk

Kuchuluk
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 5

Отправлено 24 Апрель 2013 - 14:34

привели код формы


<select name="street" onChange="MkHouseValues(this.selectedIndex)">
    <option value="Россия">Россия</option>
    <option value="Казахстан">Казахстан</option>
    </select>
    &nbsp;Город:
    <select name="house">
    <option value="N/A">N/A</option>
    </select>
    <select name="clubs">
    <option value="N/A">N/A</option>
    </select>

  • 0

#15 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Апрель 2013 - 16:04

Cannot convert 'document.forms["house"]' to object
это значит, что то, что ты передаешь не является объектом, тоесть должно быть объектом, но таким не является. или вообще не существует

и второе, ты используешь
onChange="MkHouseValues(this.selectedIndex)"

но я не вижу у тебя в коде такой функции. она есть? или ты что то напутал?

и в третьих, с элементами формы лучше работать по айдишнику (функция document.getElementById() )
  • 0

#16 isvetlichniy

isvetlichniy
  • Пользователь
  • 619 сообщений
  • Репутация: 93

Отправлено 24 Апрель 2013 - 16:19

MkClubsValues(document.forms["house"].elements["clubs"].selectedIndex);
а это что я вообще не понял...

что такое document.forms["house"] ?
  • 0


Оформление форума – IPBSkins.ru