Javascript.RU

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

Не отправляет данные динамически сгенерированных полей
Всем привет. Такая вещь - под IE всё работает, под FireFox и Chrom - нет, хотя должно ведь - кажется, и заблудиться-то негде!
Вот в чём загвоздка - у меня динамически создаются 2 списка, поле для загрузки файлов и 2 ячейки. Я в тестовом режиме вывожу alert на предмет сгенерированного блока со всеми этими объектами:

alert(newBlock.innerHTML);

Вот что он мне пишет:

<select name="work_type1" id="work_type1">
[...options...]
</select>

<select name="work_area1" id="work_area1">
[...options...]
</select>

<select name="work_type2" id="work_type2">
[...options...]
</select>

<select name="work_area2" id="work_area2">
[...options...]
</select>

и т.д.

ВСЕ браузеры ОДИНАКОВО видят динамически сгенерированный контент. Однако когда я вывожу полученные после submit формы переменные (work_type1, work_area1, work_type2, work_area2), то вижу их только после отправки Эксплорером! 2 других браузера их вообще не видят, т.е., судя по всему, не отсылают.

Провёл эксперимент - скопировал этот сгенерированный текст из окна alert'а FiereFox, тупо вставил в статическую страницу в то место, где должен быть динамически генерируемый контент - всё прекрасно отсылается.
Получается, проблема в самом этом динамическом контенте. Но почему тогда оно алертом выводит его корректно, но не отсылает?
Буду очень признателен за помощь!

Последний раз редактировалось srgg, 07.11.2011 в 13:37. Причина: уточнение
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2011, 13:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

А у меня всё нормально передаётся...
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2011, 13:56
Новичок на форуме
Отправить личное сообщение для srgg Посмотреть профиль Найти все сообщения от srgg
 
Регистрация: 07.07.2008
Сообщений: 9

Сообщение от ksa Посмотреть сообщение
А у меня всё нормально передаётся...
Текст скрипта, которым выполняете (а ещё лучше - всей страницы) можете дать?
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2011, 14:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Таки хотелось бы увидеть твой... Потому как твои огрызко это вообще ни о чём...
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2011, 14:19
Новичок на форуме
Отправить личное сообщение для srgg Посмотреть профиль Найти все сообщения от srgg
 
Регистрация: 07.07.2008
Сообщений: 9

counter=1;

function generateFilesFields() {
	
//количество полей для згрузки
var files_count=document.getElementById('files_count').value;
//контейнер для генерации полей загрузки
var container=document.getElementById('file_uploading');
//
var upl;

var tblStart="\n<table>\n  <tr>\n    <td>\n";
var tblNextCell="    </td>\n    <td>\n";
var tblNextCell99='    </td>\n    <td style="width:99%">\n';
var tblFinish="\n    </td>\n  </tr>\n</table>";
if (isNaN(files_count)) alert('Указанное вами значение для количества файлов не является числом!');
else {  
		i=0;
		while (i<files_count) {
			
			//строка загрузки файлов
			//СПИСОК типов работ:
			
			upl='<!--СПИСОК ТИПОВ РАБОТ:-->'+tblStart+'<select name="work_type'+counter+'" id="work_type'+counter+'">\n<? 
                        
                        //<options>
			$Worx->buildWorxAreasListOptions();
			
			?>\n</select>'+tblNextCell;
			
			
			//СПИСОК предметов:
			upl+=' \n<!--СПИСОК ПРЕДМЕТОВ:-->\n<select style="background-color:#F7f7f7;" name="work_area'+counter+'" id="work_area'+counter+'">\n<? 

			//<options>
			$Worx->buildWorxTypesListOptions();

			?>\n</select>'+tblNextCell99;
			
                        //дописываем ячейки для цен:
			upl+='\n<input name="file_'+counter+'" type="file" style="width:99%">'+tblNextCell;
			upl+=' \n<input name="wprice_'+counter+'" id="wprice_'+counter+'" type="text" size="3" title="Ваша цена работы" onkeyUp="calculatePrices(this,\'wprice_customer_'+counter+'\');">'+tblNextCell;
			upl+=' \n<input name="wprice_customer_'+counter+'" id="wprice_customer_'+counter+'" type="text" size="3" title="Цена для заказчика" onkeyUp="calculatePrices(this,\'wprice_'+counter+'\');">'+tblNextCell;
			
                        //удалить сформиованную строку загрузки:
			upl+=' \n<a href="#" \nonClick="parentNode.style.display=';
			upl+="'none';parentNode.parentNode.parentNode.parentNode.parentNode.innerHTML='';return false;";
			// удаляем узлы: td/tr/tbody/table/div
			upl+='" title="Убрать"><img src="<?=$_SESSION['SITE_ROOT']?>images/delete2.gif" align="absmiddle" hspace="4" border="0" /></a>'+tblFinish; 
			
			//дописываем контент блока загрузки:
			var newContainer=document.createElement("DIV");				
			var newDiv=container.appendChild(newContainer);
			newDiv.innerHTML=upl;
			
			i++;
			counter++; //2
		}

          //тестовый вывод динамического контента: 
	  alert('\nДОБАВЛЕННЫЙ КОНТЕНТ:\n'+container.innerHTML);

	  document.getElementById('div_upl_button').style.display='block';
	  counter1+=i;
	}
}
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2011, 14:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

srgg, ты знаешь что такое "тестовый пример"?
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2011, 14:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Вот, например мой пример

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function(){
	$('#add').click(function(){
		var val
		val='<div>'
		val+='<select name="work_type1">'
		val+='<option value=""></option>'
		val+='<option value="1">Item 1</option>'
		val+='<option value="2">Item 2</option>'
		val+='<option value="3">Item 3</option>'
		val+='</select>'
		val+='</div>'
		$('#test').append(val)
	});
});
</script>
</head>
<body>
<form id='frm' method='get'>
	<div id='test'></div>
	<input id='add' type='button' value='Add' />
	<input type='submit' value='Send' />
</form>
</body>
</html>

Формирует вот такой УРЛ

http://<url>?work_type1=1&work_type1=2&work_type1=3
Ответить с цитированием
  #8 (permalink)  
Старый 07.11.2011, 14:39
Новичок на форуме
Отправить личное сообщение для srgg Посмотреть профиль Найти все сообщения от srgg
 
Регистрация: 07.07.2008
Сообщений: 9

Кажется, догадываюсь
Ответить с цитированием
  #9 (permalink)  
Старый 07.11.2011, 15:05
Новичок на форуме
Отправить личное сообщение для srgg Посмотреть профиль Найти все сообщения от srgg
 
Регистрация: 07.07.2008
Сообщений: 9

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>


[JS]<script type="text/javascript">

counter=1;
//counter1=0;

function generateFilesFields() {
	
//количество полей для згрузки
var files_count=document.getElementById('files_count').value;
//контейнер для генерации полей загрузки
var container=document.getElementById('file_uploading');
//
var upl;
//счётчики списков:
//var wacount=0;
//var wtcount=0;
var tblStart="\n<table>\n  <tr>\n    <td>\n";
var tblNextCell="    </td>\n    <td>\n";
var tblNextCell99='    </td>\n    <td style="width:99%">\n';
var tblFinish="\n    </td>\n  </tr>\n</table>";
if (isNaN(files_count)) alert('Указанное вами значение для количества файлов не является числом!');
else {  
		i=0;
		while (i<files_count) {
			
			//строка загрузки файлов
			//СПИСОК типов работ:
			//upl='<!--СФОРМИРОВАТЬ ПЕРВИЧНЫЙ СПИСОК:-->\n'+wlistHTML;
			upl='<!--СПИСОК ТИПОВ РАБОТ:-->'+tblStart+'<select name="work_type'+counter+'" id="work_type'+counter+'">\n<option value=0 selected>Все предметы</option><option value="АСТРОЛОГИЯ">АСТРОЛОГИЯ</option><option value="Банковское дело">Банковское дело</option><option value="вирусология">вирусология</option><option value="Государственное регулирование, Таможня, Налоги">Государственное регулирование, Таможня, Налоги</option><option value="Другое: гуманитарные науки">Другое: гуманитарные науки</option><option value="Журналистика, PR, Издательское дело">Журналистика, PR, Издательское дело</option><option value="Законодательство и право">Законодательство и право</option><option value="Искусство, Культура">Искусство, Культура</option><option value="Квантовая механика">Квантовая механика</option><option value="Литература, Зарубежная литература">Литература, Зарубежная литература</option><option value="Маркетинг">Маркетинг</option><option value="Математика">Математика</option><option value="Машиностроение">Машиностроение</option><option value="Медицина">Медицина</option><option value="Менеджмент">Менеджмент</option><option value="Охрана правопорядка">Охрана правопорядка</option><option value="Охрана природы, Экология, Природопользование">Охрана природы, Экология, Природопользование</option><option value="Педагогика">Педагогика</option><option value="Пищевые продукты">Пищевые продукты</option><option value="Политология, Геополитика">Политология, Геополитика</option><option value="Предпринимательская деятельность">Предпринимательская деятельность</option><option value="Прикольно новый">Прикольно новый</option><option value="Промышленность и Производство">Промышленность и Производство</option><option value="Психология, Общение, Человек">Психология, Общение, Человек</option><option value="Радиоэлектроника">Радиоэлектроника</option><option value="Религия">Религия</option><option value="Садоводство">Садоводство</option><option value="Сельское хозяйство">Сельское хозяйство</option><option value="Социология">Социология</option><option value="Страноведение">Страноведение</option><option value="Строительная механика">Строительная механика</option><option value="Теоретическая механика">Теоретическая механика</option><option value="Физика">Физика</option><option value="Физкультура и Спорт, Здоровье">Физкультура и Спорт, Здоровье</option><option value="Философия">Философия</option><option value="Химия">Химия</option><option value="Экономика и Финансы">Экономика и Финансы</option><option value="Экономическое право">Экономическое право</option><option value="Экскурсии и туризм">Экскурсии и туризм</option><option value="Электротехника">Электротехника</option><option value="Эндокринология">Эндокринология</option>\n</select>'+tblNextCell;
			//alert('SEL= '+wlistHTML+'<select name="work_type'>');
			
			//alert(upl);
			//СПИСОК предметов:
			upl+=' \n<!--СПИСОК ПРЕДМЕТОВ:-->\n<select style="background-color:#F7f7f7;" name="work_area'+counter+'" id="work_area'+counter+'">\n<option value="0" selected>Все типы работ </option><option value="Диплом MBA">Диплом MBA</option><option value="Дипломная работа">Дипломная работа</option><option value="Диссертация">Диссертация</option><option value="Исследование">Исследование</option><option value="Контрольная работа">Контрольная работа</option><option value="Курсовая">Курсовая</option><option value="Лабораторная работа">Лабораторная работа</option><option value="Неизвестный">Неизвестный</option><option value="Опыт">Опыт</option><option value="Отработка">Отработка</option><option value="Преддипломная практика">Преддипломная практика</option><option value="Производственная практика">Производственная практика</option><option value="Прочее">Прочее</option><option value="Реферат">Реферат</option><option value="мегаЭкспл">мегаЭкспл</option><option value="Прочее">Прочее</option>\n</select>'+tblNextCell99;
			//дописываем ячейки для цен:
			upl+='\n<input name="file_'+counter+'" type="file" style="width:99%">'+tblNextCell;
			upl+=' \n<input name="wprice_'+counter+'" id="wprice_'+counter+'" type="text" size="3" title="Ваша цена работы" onkeyUp="calculatePrices(this,\'wprice_customer_'+counter+'\');">'+tblNextCell;
			upl+=' \n<input name="wprice_customer_'+counter+'" id="wprice_customer_'+counter+'" type="text" size="3" title="Цена для заказчика" onkeyUp="calculatePrices(this,\'wprice_'+counter+'\');">'+tblNextCell;
			//удалить сформиованную строку загрузки:
			upl+=' \n<a href="#" \nonClick="parentNode.style.display=';
			upl+="'none';parentNode.parentNode.parentNode.parentNode.parentNode.innerHTML='';return false;";
			// удаляем узлы: td/tr/tbody/table/div
			upl+='" title="Убрать"><img src="http://localhost/Referats/images/delete2.gif" align="absmiddle" hspace="4" border="0" /></a>'+tblFinish; 
			//alert(upl);
			//дописываем контент блока загрузки:
			//container.insertAdjacentHTML("beforeEnd",upl); //	insertAdjacentHTML	РАБОТАЕТ ТОЛЬКО ПОД IE!!!
			var newContainer=document.createElement("DIV");				
			var newDiv=container.appendChild(newContainer);
			newDiv.innerHTML=upl;
			//alert('\nДОБАВЛЕННЫЙ ТЕКСТ:\n'+newDiv.innerHTML);
			i++;
			counter++; //2
		} 
	  alert('\nДОБАВЛЕННЫЙ КОНТЕНТ:\n'+container.innerHTML);
	  document.getElementById('div_upl_button').style.display='block';
	  counter1+=i;
	}
}

//рассчитать цены для заказчика и автора:
function calculatePrices(active,impacted) {
	
	//average: 25% ($price_ratio=125)
	
	//если вводим значения в ячейку для цены автора:
	if (active.id.indexOf("customer_")==-1) {
		//400/100*125=500
		document.getElementById(impacted).value=active.value/100*125;
	}else{ //если для цены заказчика:
		//
		document.getElementById(impacted).value=active.value/125*100;
	}
}
</script>[/JS]</head>
<body >
<table width="100%" height="100%" align="center" cellpadding="0" cellspacing="0">
  <form name="form1" method="post" class="padding0" enctype="multipart/form-data">
  <tr height="100%">
    <td colspan="2" valign="top" style="border-top:solid 1px #CCC;"><div style="overflow:auto; height:100%;" class="padding8 paddingTop14">
      <div id="upload_content" style="display:;">
        <ol class="content">
  Количество загружаемых файлов: 
  <input name="files_count" type="text" id="files_count" size="1" />
  <input onClick="generateFilesFields();" type="button" name="files_array" id="files_array" value="    OK     " />
</ol>
<hr color="#FFFFFF" />

<div id="file_uploading" class="iborder2 borderColorGray"></div>
<div id="div_upl_button" class="paddingTop6 paddingLeft8" style="display:"><input name="upload_all_files" type="submit" value="Загрузить!" onClick="return checkPriceInt('file_uploading','wprice_');"></div>    
	
</div>
    
</div>
</div></td>
  </tr>
</form>
</table>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 07.11.2011, 15:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

srgg, мой пример не нужно собирать по кускам... Он полностью рабочий и запускается даже тут на форуме... А у тебя Лего.
Потрудись хоть немного для решения своей же проблемы...

Так-то лучше...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не совсем обычный фрейм и выезжающий текст при наводе на картинку. amaz245 Элементы интерфейса 35 25.12.2010 17:29
Не отправляет данные из формы Weise AJAX и COMET 12 19.05.2010 22:56
Не отправляются на сервер данные из клонированных полей Dark jQuery 1 02.04.2010 19:53
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14