Регистрация
Вход через соцсети
Восстановление пароля

Ошибка добавления объекта

Новый топик
23.07.2009, 17:26
Ответить | Цитировать
DoniE

Зарегистрирован:
2008-07-24
Сообщений: 5

При добавлении объекта через альтернативную форму выдает "Ошибка добавления объекта".
Через дефолтную форму все нормально добавляется.
Пытался, удаляя куски кода из альтернативной формы, выяснить где ошибка и в чем разница. Дошел до того, что в альтернативной форме оставались только параметры добавления form и скрытые поля и ВСЕ РАВНО ОШИБКА. Параметры добавления 100% правильные, скопированные с дефолтной формы.
Ума не приложу, что делать((
!!HELP!!
23.07.2009, 18:07
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

Нужно увидеть код формы. Скорее всего, какие-то значений неверные. Может быть с hidden-полями что-то не так. И какая версия системы у вас?

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
23.07.2009, 18:13
Ответить | Цитировать
DoniE

Зарегистрирован:
2008-07-24
Сообщений: 5

Версия 2.4
Код формы очень большой.
Причем интересно, что тот же код, с измененными параметрами добавления form отлично работает как альтернативная форма изменения.
23.07.2009, 18:26
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

Ну покажите хоть <form> ... </form> с набором hidden-полей улыбка
А вообще, если исправно работает штатная форма, значит где-то вы с именами полей напутали.

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
23.07.2009, 18:57
Ответить | Цитировать
DoniE

Зарегистрирован:
2008-07-24
Сообщений: 5

Код:
<form name=adminForm enctype=multipart/form-data method=post action=/netcat/add.php>
<input type=hidden name=admin_mode value=1>
<input name=cc type=hidden value=354>
<input name=sub type=hidden value=399>
<input name=catalogue type=hidden value=1>
<input type='hidden' name='posting' value='1'>


Так я убирал из формы ВСЕ поля кроме необходимых для добавления и одного рабочего, чтоб было что добавить.
Т.е было form и hidden поля + еще 1 поле которое я добавлял (простой input текстовый).
И все равно ошибка
23.07.2009, 19:27
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

Попробуйте заменить конкретные значения каталога-раздела-компонента на:

Код:
<form name='adminForm' enctype='multipart/form-data' method='post' action='/netcat/add.php'>
<input name='admin_mode' type='hidden' value='$admin_mode' />
<input name='catalogue' type='hidden' value='$catalogue' />
<input name='cc' type='hidden' value='$cc' />
<input name='sub' type='hidden' value='$sub' />
<input name='posting' type='hidden' value='1' />


Что-то более конкретное сказать сложно. Да и версия старовата!


...жизнь прекрасна, когда правильно подобраны антидепрессанты...
23.07.2009, 23:48
Ответить | Цитировать
DoniE

Зарегистрирован:
2008-07-24
Сообщений: 5

Спасибо за совет, но ничего не поменялось..
Ошибка добавления
10.08.2009, 03:08
Ответить | Цитировать
Гость
Гость

может у вас чтото прописано в условии добавления?
10.08.2009, 14:40
Ответить | Цитировать
pe3udent
Артур Юсупов

Зарегистрирован:
2008-04-03
Сообщений: 220

Только что столкнулся с такой же ошибкой.

Проблема в следующем:

если поле типа "Целое число" не обязательно для заполнения и в "Значении по умолчанию" стоит ноль - выдается сообщение "Ошибка добавления объекта.", потому что система в это поле пытается записать NULL думает .

Отписался в тех.поддержку.
10.08.2009, 15:43
Ответить | Цитировать
Гость
Гость

Это, похоже не мой случай, т.к значения по умалчанию не установлены ни в одном поле..
Провео еще такую манипуляцию..
Форма по умалчанию отлично работает, ошибок добавления не выдает. Скопировал код этой формы и вставил в альтернативную форму добавления.
Результат опять же - ошибка добавления объекта.
Почему?((
18.08.2009, 13:54
Ответить | Цитировать
ooo
ИнфоТехноПроект

Зарегистрирован:
2009-06-18
Сообщений: 57

Попробуй такую форму (+ скрипт проверки заполнения данных):

Код:

<h1 style="text-align: center; font-size: 1.3em;">Отправить</h1>
<p>Заполните все поля в форме и нажмите «Отправить»:</p>
<p style='color: red'>".($warnText ? "Вы ошиблись при заполнении формы:<br /> $warnText" : "")."
</p>
<form onsubmit='return checkForm(this);' name='adminForm' id='adminForm'
enctype='multipart/form-data' method='post' action='/netcat/add.php'>
<input name='admin_mode' type='hidden' value='$admin_mode'>
<input name='catalogue' type='hidden' value='$catalogue'>
<input name='cc' type='hidden' value='$cc'>
<input name='sub' type='hidden' value='$sub'>
<input name='posting' type='hidden' value='1'>
<input name='curPos' type='hidden' value='$curPos'>
<input name='f_Parent_Message_ID' type='hidden' value='$f_Parent_Message_ID'>".($admin_mode && !$systemTableID ? "
<table border='0' cellpadding='2' cellspacing='0'>
<tr><td>".NETCAT_MODERATION_PRIORITY.":</td>
<td><input name='f_Priority' type='text' size='5' maxlength='5' value='".$f_Priority."'>
".($moderationID==1 && !isset($f_Checked) ? opt($f_Checked=1,"") : "")."
".( CheckUserRights($current_cc['Sub_Class_ID'], "moderate", $posting) ?
"<input id='chk' name='f_Checked' type='checkbox' value='1' ".($f_Checked ? "checked" : "").">
<label for='chk'>".NETCAT_MODERATION_TURNON."</label>" :
"<input id='chk' name='f_Checked' type='hidden' value='".($f_Checked ? 1 : 0)."'>")."
</td></tr>
<tr><td>".CONTROL_CONTENT_SUBDIVISION_FUNCS_MAINDATA_KEYWORD.":</td>
<td><input name='f_Keyword' type='text' size='20' maxlength='255' value='".$f_Keyword."'></td></tr></table>
<hr size=1>
" : "")."

".nc_string_field("CompanyName", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".nc_string_field("Name", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".nc_string_field("Email", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".nc_string_field("Phone", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".nc_string_field("Subject", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".nc_file_field("Zayavka", "size='50'", $classID, 1)."<br>
<br>
".nc_text_field("Message", "", $classID, 1)."<br>
<br>
".nc_string_field("Captcha", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".(!$AUTH_USER_ID && $current_cc['UseCaptcha'] && $MODULE_VARS['captcha'] ? nc_captcha_formfield()."<br>
<br>".NETCAT_MODERATION_CAPTCHA." (*):<br>
<input type='text' name='nc_captcha_code' size='10'><br>
<br>" : "")."
<br>".NETCAT_MODERATION_INFO_REQFIELDS."<br>
<br>
".nc_submit_button(NETCAT_MODERATION_BUTTON_ADD)."

<script type="text/javascript">
function checkForm(form) {
// Заранее объявим необходимые переменные
var el, // Сам элемент
elName, // Имя элемента формы
value, // Значение
type; // Атрибут type для input-ов
// Массив списка ошибок, по дефолту пустой
var errorList = [];
// Хэш с текстом ошибок (ключ - ID ошибки)
var errorText = {
1 : "Не заполнено поле 'Наименование компании'",
2 : "Не заполнено поле 'ФИО контактного лица'",
3 : "Не заполнено поле 'E-mail'",
4 : "Не заполнено поле 'Телефон'",
5 : "Не заполнено поле 'Тема сообщения'",
6 : "Не заполнено поле 'Сообщение'",
7 : "Не подтвержден факт, что Вы не робот. Скопируйте в нижнее поле код: 'JDbam213' (без кавычек, регистр обязателен)",
99 : "Неизвестная ошибка'",

// 951 : "Не выбран срок подписки",
// 952 : "Не задано ни одного вопроса, не пожелано ни одного пожелания",
// 953 : "Не прикреплен файл",

}
// Получаем семейство всех элементов формы
// Проходимся по ним в цикле
for (var i = 0; i < form.elements.length; i++) {
el = form.elements;
elName = el.nodeName.toLowerCase();
value = el.value;
if (elName == "input") { // INPUT
// Определяем тип input-а
type = el.type.toLowerCase();
// Разбираем все инпуты по типам и обрабатываем содержимое
switch (type) {
case "text" :
if (el.name == "f_CompanyName" && value == "") errorList.push(1);
if (el.name == "f_Name" && value == "") errorList.push(2);
if (el.name == "f_Email" && value == "") errorList.push(3);
if (el.name == "f_Phone" && value == "") errorList.push(4);
if (el.name == "f_Subject" && value == "") errorList.push(5);
if (el.name == "f_Captcha" && value != "JDbam213") errorList.push(7);
//Пользовательские поля кончились, пропускаем блок
break;
case "password" :
// Ничего не делаем, хотя можем
break;
case "file" :
// Ничего не делаем, хотя можем
break;
case "checkbox" :
// Ничего не делаем, хотя можем
break;
case "radio" :
// Ничего не делаем, хотя можем
break;
default:
// Сюда попадают input-ы, которые не требуют обработки
// type = hidden, submit, button, image
break;
}
} else if (elName == "textarea") { // TEXTAREA
if (value == 0) // errorList.push(4)
if (el.name == "f_Message" && value == "") errorList.push(6);
;
} else if (elName == "select") { // SELECT
if (value == 0) // errorList.push(5)
;
} else {
// Обнаружен неизвестный элемент ;)
}
}
// Финальная стадия
// Если массив ошибок пуст - возвращаем true
if (!errorList.length) return true;
// Если есть ошибки - формируем сообщение, выовдим alert
// и возвращаем false
var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n";
for (i = 0; i < errorList.length; i++) {
errorMsg += errorText[errorList] + "\n";
}
alert(errorMsg);
return false;
}
</script>
</form>


Нужные поля проставь свои.
ЗЫ. Если какие поля не нужны, то в другой форме пришлось их прятать после скрипта, но также и обязательно указывать в альтернативной форме. Пока не указал все ненужные хидденами и не проставил значения по-умолчанию, тоже не работало.

ЗЗЫ. А код "JDbam213" привязан так потому, что на NetCat'e НИ В КАКУЮ НЕ РАБОТАЕТ КАПТЧА!!!

ЗЗЗЫ. А почему это в середине цитаты с кодом шрифт стал курсивом? А, разрабы?
198 196 2009-08-18 13:54:26 9717
Описание проекта