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

Реферальная программа Мегаплана


AJAX. Передача данных без перезагрузки

#1 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0
0

Отправлено 12 Июль 2009 - 09:28

Есть определенная форма с кучей полей
передаю данные так:

<script type="text/javascript">
	function ajaxEditFormComment(form)
	{
		name2 = form.name.value; /* в форме имеет type="text", передается отлично */
		typebat2 = form.typebat.value; /* в форме имеет type="radio", не передается, undefined */
		file_img_del2 = form.file_img_del.value; /* в форме имеет type="radio", не передается */
		file_img2 = form.file_img.value; /* в форме имеет type="file", не передается */
		
		.........
	}
</script>
код дал не весь, потому как думаю что проблема в выделенных жирным словах.

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Июль 2009 - 10:51

Евгений, Покадите мне саму форму HTML.
  • 0

#3 Евгений

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

Отправлено 12 Июль 2009 - 11:06

<form onSubmit="return ajaxEditFormComment(this)" enctype="multipart/form-data">						
<b>Название баттла *</b> <input type="text" name="name" class="text" value="<?php echo $result['name'];?>" size="55" />
<input type="hidden" name="id" value="<?php echo $result['id'];?>" />

<b>Тип батла *</b>
<input name="typebat" type="radio" value="1" <?php if ($result['type'] == 1) echo 'checked="checked"'; ?> /> Официальный  
<input name="typebat" type="radio" value="0" <?php if ($result['type'] == 0) echo 'checked="checked"'; ?> /> Неофициальный

<b>Логотип (*.jpg)</b> <input type="file" name="file_img">

<input type="checkbox" name="file_img_del"> Удалить фотографию</td>

<input value="Редактировать" type="submit">
</form>


на опечатки нет смысла обращать, я названия переменных меняю, прежде чем на форум выложить =)
форма оочень большая если выкладывать со всем хтмл кодом, выложил только небольшой кусочек
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 12 Июль 2009 - 11:55

Евгений,
typebat2 = form.typebat.value;
таким образом нельзя
typebat - это массив объектов. Используй такую функцию:
<script type="text/javascript">
function getRadioValue(radioObject)
{
   var value = null;
   for (var i = 0; i < radioObject.length; i++)
   {
	  if (radioObject[i] .checked)
	  {
	  value = radioObject[i] .value
	  break;
	  }
   }
   return value
}
</script>

Доступные методы и свойства file

blur() - Убирает фокус из окна FileUpload.
focus() - Устанавливает фокус на окно FileUpload.
handleEvent() - Вызывает заданный по умолчанию обработчик для указанного события.
select() - Выбирает область ввода в окне FileUpload.

name - Содержит значение атрибута name для окна FileUpload.
form - Ссылается на объект Form, содержащий FileUpload.
type - Содержит значение атрибута type для FileUpload.
value - Строка, определяющая путь к выбранному файлу.
  • 0


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