Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.08.2017, 13:16
Аспирант
Отправить личное сообщение для rdPavel Посмотреть профиль Найти все сообщения от rdPavel
 
Регистрация: 02.08.2017
Сообщений: 33

Nexus,

Да всё чотко код приписывает параметр для Селект.
Одна проблема он приписывает его для всех Селект кто в форме.
А как сделать чтобы только для cp_state, другим не нужно?

Для всех можно еще вот здесь прописать:
в файле custom-forms.php
$field_class = ( $result->field_req ) ? 'dropdownlist required' : 'dropdownlist';
$args = array( 'name' => $result->field_name, 'id' => $result->field_name, 'class' => $field_class, 'onchange' => 'CityList(this)' );

Пробовал так, он на всех Селектах приписывает onchange="CityList(this);"
Ответить с цитированием
  #12 (permalink)  
Старый 02.08.2017, 13:35
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

rdPavel, верни все как было, а перед функцией CityList напиши следующее:

window.onload=function(){
    window.document.getElementById('cp_state').onchange=function(e){
        CityList(e.target);
    };
};
if(window.document.readyState=='complete')
    window.dispatchEvent(new Event('load'));

Последний раз редактировалось Nexus, 02.08.2017 в 15:22.
Ответить с цитированием
  #13 (permalink)  
Старый 02.08.2017, 13:40
Аспирант
Отправить личное сообщение для rdPavel Посмотреть профиль Найти все сообщения от rdPavel
 
Регистрация: 02.08.2017
Сообщений: 33

Nexus,

Я ваш код обязательно проверю.
Я прошлый немного доработал, в принципе работает отлично
Одну строчку изменил:
$select=str_replace('cp_state','cp_state" onchange="getCityList(this);" ',$select);
echo $select;

Весь смысл в двойной " после cp_state
Ответить с цитированием
  #14 (permalink)  
Старый 02.08.2017, 13:41
Аспирант
Отправить личное сообщение для rdPavel Посмотреть профиль Найти все сообщения от rdPavel
 
Регистрация: 02.08.2017
Сообщений: 33

Или всё таки вернуть всё обратно и:

window.onload=function(){
window.document.getElementById('cp_state').onchang e=function(e){
CityList(e.target);
};
};
if(window.document.readyState=='complete')
window.dispatchEvent('load',new Event('load'));
Ответить с цитированием
  #15 (permalink)  
Старый 02.08.2017, 13:49
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

rdPavel, не мне решать, но лучше заюзать второй вариант, правда я его не тестил.
Ответить с цитированием
  #16 (permalink)  
Старый 02.08.2017, 14:28
Аспирант
Отправить личное сообщение для rdPavel Посмотреть профиль Найти все сообщения от rdPavel
 
Регистрация: 02.08.2017
Сообщений: 33

Nexus,

Код второй что-то не идет...
Спасибо большое за идею и направление в решении проблемы.
Ответить с цитированием
  #17 (permalink)  
Старый 02.08.2017, 15:23
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

rdPavel, методу dispatchEvent передается только 1 аргумент - экземпляр "класса" Event, свой комментарий я поправил.
Ответить с цитированием
  #18 (permalink)  
Старый 02.08.2017, 16:17
Аспирант
Отправить личное сообщение для rdPavel Посмотреть профиль Найти все сообщения от rdPavel
 
Регистрация: 02.08.2017
Сообщений: 33

Nexus,

Всё чотко, большое спасибо!
В коде в браузере даже аргумента не видно, но он работает.

Подскажите хорошую книжку по JS и PHP, надо бы углубляться, ну и разумеется практика и практика.
Ответить с цитированием
  #19 (permalink)  
Старый 02.08.2017, 16:45
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

rdPavel, к моему стыду книг я посоветовать не могу, ибо ни одну даже не начинал читать.
Возможно кто-нибудь другой вам что посоветует.
Ответить с цитированием
  #20 (permalink)  
Старый 03.08.2017, 13:14
Аспирант
Отправить личное сообщение для rdPavel Посмотреть профиль Найти все сообщения от rdPavel
 
Регистрация: 02.08.2017
Сообщений: 33

Nexus,

Добрый день!
Можете подсказать из-за чего могут конфликтовать эти два кода.
Один отключу второй работает и на оборот.
Эти оба на одной форме.

Обработчик cp_state.js
var ajax = new Array();

window.onload=function(){
window.document.getElementById('cp_state').onchange=function(e){
  getCityList(e.target);
   };
};
if(window.document.readyState=='complete')
window.dispatchEvent(new Event('load'));


function getCityList(sel)
{
	var countryCode = sel.options[sel.selectedIndex].value;
	document.getElementById('cp_region').options.length = 0;
	if(countryCode.length>0){
		var index = ajax.length;
		ajax[index] = new sack();
		
		ajax[index].requestFile = 'http://***/sel/baza/cp_state.php?countryCode='+countryCode;
		ajax[index].onCompletion = function(){ createCities(index) };
		ajax[index].runAJAX();
	}
}

function createCities(index)
{
	var obj = document.getElementById('cp_region');
	eval(ajax[index].response);	
}



Обработчик cp_avto.js
var ajax = new Array();

window.onload=function(){
window.document.getElementById('cp_id_387').onchange=function(e){
  getAvtoList(e.target);
   };
};
if(window.document.readyState=='complete')
window.dispatchEvent(new Event('load'));


function getAvtoList(sel)
{
	var countryCode2 = sel.options[sel.selectedIndex].value;
	document.getElementById('cp_id_928').options.length = 0;
	if(countryCode2.length>0){
		var index = ajax.length;
		ajax[index] = new sack();
		
		ajax[index].requestFile = 'http://***/sel/baza/cp_avto.php?countryCode2='+countryCode2;
		ajax[index].onCompletion = function(){ createCities2(index) };
		ajax[index].runAJAX();
	}
}

function createCities2(index)
{
	var obj = document.getElementById('cp_id_928');
	eval(ajax[index].response);	
}


База, у каждого своя, может её в общую согнать?

Последний раз редактировалось rdPavel, 03.08.2017 в 13:17.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить проблему! Очень прошу помочь! sizdim Элементы интерфейса 2 06.04.2015 07:59
Помогите решить проблему со скроллом Jigan2 jQuery 0 20.03.2015 10:42
Помогите решить проблему Ingiborn Общие вопросы Javascript 0 10.07.2014 13:12
History API. Помогите решить проблему InviS Events/DOM/Window 2 16.10.2011 14:34
Помогите решить проблему felixfix Общие вопросы Javascript 4 21.04.2011 12:00