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


Выскакивает ошибка при допдействии


Сообщений в теме: 11

#1 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 12 Февраль 2013 - 10:06

Добрый день.
Просьба помочь решить следующий вопрос.
При выполнении доп.действия выскакивает ошибка:
"Warning: addslashes() expects parameter 1 to be string, array given in /home/ldt-kzn/public_html/include/functions1.php on line 26 Warning: addslashes() expects parameter 1 to be string, array given in /home/ldt-kzn/public_html/include/functions1.php on line 26"

При этом само допдействие выполняется вполне корректно.
Подскажите пожалуйста что необходимо поправить.
Вот сам код допдействия:
$line['Отгружено'] = $line['Отгружено'] + $line['Отгрузить'];
$line['История отгрузок'] = "\n" . date ("Y-m-d H:i:s") . " Отправлено " . $line['Отгрузить'] . " " . $line['Ед. изм.'] . " по адресу " . $line['Адрес'] . " | ". "\n"  . $line['История отгрузок'];
$data['Рабочее название'] = $line['Заказчик']['ID'];
$data['Компания'] = $ID;
$data['Тип'] = 'Отгружено';
$data['Дата отгрузки'] = date ("Y-m-d H:i:s");
$data['Тип товара'] = $line['Товар'];
$data['Водитель'] = $line['Водитель'];
$data['Объем'] = $line['Отгрузить'];
insert_query($data,"Журнал отгрузок");
$data['Рабочее название'] = $line['Поставщик']['ID'];
$data['Тип'] = 'Закуплено';
$data['Дата отгрузки'] = date ("Y-m-d H:i:s");
$data['Тип товара'] = $line['Товар'];
$data['Водитель'] = $line['Водитель'];
$data['Объем'] = $line['Отгрузить'];
insert_query($data,"Журнал отгрузок");


#2 Гость_Roman_*

  • Гости

Отправлено 12 Февраль 2013 - 10:27

Похоже, что в одном из элементов $data содержится не строковое значение. Проверьте, какой именно это элемент
print_r($data); die();


#3 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 12 Февраль 2013 - 10:45

Действительно - раньше поле Товар было списком, а не так давно список товаров перекинули в таблицу Номенклатура и оно стало полем связи.
Решилось все следующим образом
$data['Тип товара'] = $line['Номенклатура']['ID'];

Благодарю за оперативную помощь!

Еще вопрос если можно. Во второй строке кода - ведется история отгрузок, так вот. почему-то не очень корректно (вернее вне моего понимания) работает перенос строки ( "\n" ). При отображении первые 2 записи всегда пишутся подряд, а последующие уже каждый с новой строки. Что можно с этим сделать?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Февраль 2013 - 11:02

Еще желательно, перед тем как заполнять какую либо переменную элементами массива, явно обнулять ее как массив:

$data = array(); // обнуляем массив
$data['Поле1'] = 'Значение1';
$data['Поле2'] = 'Значение2';
.........

Иначе возможна ситуация, когда в этой переменной уже что-то было.

#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Февраль 2013 - 11:05

Просмотр сообщенияzizitopa (12 Февраль 2013 - 10:45) писал:

Еще вопрос если можно. Во второй строке кода - ведется история отгрузок, так вот. почему-то не очень корректно (вернее вне моего понимания) работает перенос строки ( "\n" ). При отображении первые 2 записи всегда пишутся подряд, а последующие уже каждый с новой строки. Что можно с этим сделать?

Попробуйте "\r\n".

#6 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 12 Февраль 2013 - 11:29

Обнуление массива добавил в код. спасибо!

"\r\n". - к сожалению никак не изменило картины.

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 12 Февраль 2013 - 12:09

Тогда странно, у вас скорее наоборот должно быть: первая строка пустая, из-за перевода в самом начале. Возможно, это никак не связано с данным доп.действием.

#8 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 12 Февраль 2013 - 12:46

Вот принтскрин того как выглядит эта история записей.
Первая строка видимо все же пустая, но следующие 2 записи почему-то "слипшиеся".

Подскажите пожалуйста в какую сторону копать - необходимо в это допдействие ("Отгрузить") добавить следующий функционал:
1. Выскакивает окно с возможностью ввода двух полей Адрес доставки и количество (соответсвующие ячейки в таблице уже есть).
2. Кнопки закрыть и отгрузить.
Я так понимаю это реализуемо?
Что для этого нужно сделать? Тут java-script должен быть или что-то иное используется?
p.s. чтобы примерно представлять в какую сторону искать.

Прикрепленные изображения

  • Прикрепленное изображение: Безымянный.png


#9 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 12 Февраль 2013 - 12:54

$var = "
<form method='post'>
<table style='margin-top: 20px;'>
  <tbody>
   <tr>
	<td width='154px'>
	<div class='w_left_name'>
	 Адрес доставки <span style='color: red;'>*</span>:
	</div></td>
	<td>
	<div class='w_right_name'>
	 <input id='date' name='w_date' type='text' style='width: 300px;'>
	</div></td>
   </tr>
   <tr>
	<td>
	<div class='w_left_name'>
	 Количество <span style='color: red;'>*</span>, грн:
	</div></td>
	<td>
	<div class='w_right_name'>
	 <input id='sum' name='w_sum' type='text' style='width: 300px;'>
	</div></td>
   </tr>
   <tr>
	<td colspan='2'>
	<p style='margin-top: 20px'>
	 <span style='color: red;'>*</span> - поля, обязательные для заполнения
	</p></td>
   </tr>
   <tr>
	<td colspan='2' align='right'>
	<input name='w_submit' id='submit' value='Отгрузить' type='submit' style='padding: 5px;'>
	<input type='hidden' name='csrf' value='{$csrf}' />
	</td>
   </tr>
  </tbody>
</table>
</form>
";
echo $var;

Самое просто вот где-то так. Потом нужно еще добавить обработчик нажатия. Чтобы при нажатии записывало в кб.

Сообщение отредактировал wondertalik: 12 Февраль 2013 - 12:55


#10 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 31 Март 2013 - 20:17

Просмотр сообщенияwondertalik (12 Февраль 2013 - 12:54) писал:

Самое просто вот где-то так. Потом нужно еще добавить обработчик нажатия. Чтобы при нажатии записывало в кб.

Отлично, спасибо большое.
вот только я чуток лапоть, сначала пытался вставить это все в, кхм, java-script. теперь таки разобрался что это php и вставил в нужное место. (это чтобы было примерное понимание о моем уровне грамотности).
Но в итоге со всеми строчками приведенного Вами кода разобрался. почитал про формы и кнопки.
Однако, сообразить куда и как писать обработчик нажатия кнопки я пока не в состоянии и был бы крайне благодарен, если бы помогли с этим вопросом и пояснили куда необходимо написать эти строчки кода.
С тем что делать дальше вопрос уже решен, а вот как этой формой пользоваться не знаю к сожалению.

матчасть с примерами пытался тут изучить http://www.php.su/ar...amples&page=069 однако, как это сделать в рамках КБ я пока не понимаю..

#11 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

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

Если я правильно понимаю, то приведенный выше код с генерацией формы должен вписываться в html файл, а обработчик нажатия кнопки в php файл, а как это можно сделать в рамках КБ?
Просветите пожалуйста кому не сложно.

#12 zizitopa

    Участник

  • Пользователи
  • PipPip
  • 25 сообщений

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

Вопрос решен.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных