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


Убрать пробелы мешающие импорту


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

#1 bryukhov

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

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 14 Январь 2012 - 12:07

  • Имеем таблицу в которой есть номер Контрагента.
  • Делаем импорт данных.
  • При импорте в поле номера добавляются лишние пробелы.
  • импорт происходит нормально
нужно убрать пробелы т.к. при импорте в подчиненную таблицу данных с использованием связи по номеру Контрагента, программа неправильно импортирует данные.

для ручного ввода в карточку идет проверка номера на длину в 9 знаков

function onkeyup_{$one_field.id}()
{
  field_value = document.getElementById('value{$one_field.id}').value;
  if (field_value.length > 9)
	{
	  alert("Число знаков превышает допустимое, 9 знаков!");
	  document.getElementById('value{$one_field.id}').value = field_value.substr(0,9);
	}
}
addHandler(document.getElementById('value{$one_field.id}'), 'onkeyup', onkeyup_{$one_field.id});

Вопросы как избежать подобной ситуации и не нагружать БД вычислениями
  • Пользователь не будет разбираться есть пробелы в номере или нет
я попробовал следующий код для дополнительного действия

$data = data_table("Консультанты","id='$ID'");
$num = $data['№ конс'];
$num = str_replace(" ","",$num);  
$line['№ конс'] = $num
echo "готово"

не работает и ничего не происходит

хотелось бы убирать пробелы из номера автоматически

#2 CbCoder

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

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

Отправлено 16 Январь 2012 - 10:43

Версия 1.9.5, ревизия последняя?

В приведенном коде кстати синтаксическая ошибка - нет точки с запятой в конце 2х последних строк. Не в этом дело?

#3 bryukhov

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

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 16 Январь 2012 - 13:41

Просмотр сообщенияРазработчик (16 Январь 2012 - 10:43) писал:

Версия 1.9.5, ревизия последняя?

В приведенном коде кстати синтаксическая ошибка - нет точки с запятой в конце 2х последних строк. Не в этом дело?

Спасибо! да в этом. Заработало :) только пробелы не убрались :( (ну это у меня баг какой-то результат в поле не записывается)

Сообщение отредактировал bryukhov: 16 Январь 2012 - 13:45


#4 CbCoder

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

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

Отправлено 16 Январь 2012 - 13:50

Вы не ответили насчет версии и ревизии. От этого может зависеть результат выполнения (в частности использование переменной $line может быть бесполезно)

#5 bryukhov

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

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 16 Январь 2012 - 14:10

Просмотр сообщенияbryukhov (16 Январь 2012 - 13:41) писал:

Спасибо! да в этом. Заработало :) только пробелы не убрались :( (ну это у меня баг какой-то результат в поле не записывается)

понятно, при импорте добавлен какой-то невидимый мусор, который пробелом не является.

#6 CbCoder

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

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

Отправлено 16 Январь 2012 - 14:16

Т.е. с пробелами код все таки работает? Я это к тому, что если у вас в коде работает присвоение переменной $line, то и считывать текущую строку тоже рациональнее через нее, не используя функцию data_table. Т.е. код упрощается до одно строки:
$line['№ конс'] = str_replace(" ","",$line['№ конс']);
Если же присвоение $line не работает (версия не 1.9.5 или старая ревизия), то обновлять строку нужно через update_query.

А насчет "невидимого мусора" - это вам лучше в исходном файле посмотреть, что там за символы сидят (символ табуляции к примеру), и затем подставить в код него. Или еще лучше вариант - если пробелы только в начале или конце номера, то используйте функцию trim, она вроде все "невидимые" символы убирает.

#7 bryukhov

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

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 19 Январь 2012 - 09:56

Обрезал по длине. Как посмотреть не нашел.





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

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