Массив полей визинг редактора

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 6 января 2013 в 19:46
Всем добрый день!

Подскажите пожалуйста если у кого есть идеи.
Пытаюсь отправить данные с нескольких полей визинга в массив
пример кода
  1. <?php $inCore->insertEditor('vars_descr[]', $mod['vars_descr'], '220', '100%'); ?>
т.е. напрмер при вставке такого кода 3 раза он по идее должен передать в массив 3 значения
но он передает только одно последнее заполненное значение, и 2 пустых.

а если делать обычным импутом
  1. <input type="text" name="pole[]" value="" />
то массив заполняется правильно.

Как побороть такое чудо?
#2 6 января 2013 в 21:30
т.к. fckeditor создаёт такую конструкцию:
  1. <input type="hidden" id="vars_descr[]" name="vars_descr[]" value="" style="display:none" />
  2. <input type="hidden" id="vars_descr[]___Config" value="" style="display:none" />
  3. <iframe id="vars_descr[]___Frame" src="/plugins/p_fckeditor/fckeditor/editor/fckeditor.html?InstanceName=vars_descr[]&amp;Toolbar=Admin" width="100%" height="220" frameborder="0" scrolling="no"></iframe>
то, нужно явно прописать ключи, т.е. в таком виде:
  1.  
  2. <?php $inCore->insertEditor('vars_descr[1]', $mod['vars_descr'], '220', '100%'); ?>
  3. <?php $inCore->insertEditor('vars_descr[2]', $mod['vars_descr'], '220', '100%'); ?>
  4. <?php $inCore->insertEditor('vars_descr[3]', $mod['vars_descr'], '220', '100%'); ?>
  5.  
#3 6 января 2013 в 21:51

<?php $inCore->insertEditor('vars_descr[1]', $mod['vars_descr'], '220', '100%'); ?>
<?php $inCore->insertEditor('vars_descr[2]', $mod['vars_descr'], '220', '100%'); ?>
<?php $inCore->insertEditor('vars_descr[3]', $mod['vars_descr'], '220', '100%'); ?>

dovgan

Кривоватое конечно предложение, посмотрите сами что получится если использовать такой код! Не стоит давать советов если нет четкого ответа у Вас самих.

После использования данного кода вы получите 3 редактора с одинаковым текстом внутри если конечно получите текст.

Просто суть в том что если $mod['vars_descr'] это переменная содержит массив из 3 сообщении то следовательно и передавать в редактор нужно каждое поле:$mod['vars_descr'][n] примерно вот так. Правда нет 100% уверенности что редактор съест этот код нормально.
#4 6 января 2013 в 21:52
dovgan,maxisoft спс подумаю как реализовать, т.к. доп визинги не статичны, а создаются явой.
#5 6 января 2013 в 22:06




dovgan

Кривоватое конечно предложение, посмотрите сами что получится если использовать такой код! Не стоит давать советов если нет четкого ответа у Вас самих.

После использования данного кода вы получите 3 редактора с одинаковым текстом внутри если конечно получите текст.

Просто суть в том что если $mod['vars_descr'] это переменная содержит массив из 3 сообщении то следовательно и передавать в редактор нужно каждое поле:$mod['vars_descr'][n] примерно вот так. Правда нет 100% уверенности что редактор съест этот код нормально.

maxisoft

проверил, три редактора, тексты разные, передаётся всё в массив, как и надо ТС
#6 6 января 2013 в 22:11

проверил, три редактора, тексты разные, передаётся всё в массив, как и надо ТС

dovgan

это я тоже проверил, спасибо, передается

но проблема пока нерешилась, думаю как тогда передать счетчик этой форме, т.к. как я и писал выше визинги динамические(создается клон явой), может есть еще варианты?
#7 6 января 2013 в 22:16
выложите код, который генерирует — может и придумаем что
#8 6 января 2013 в 22:19
  1. function addShag(){
  2.  
  3. $('table#shags tr').eq(1).clone().appendTo('table#shags').find('input').val('');
  4. $int = $num + 1;
  5. if ($('table#shags tr.var').length > 1){
  6. $('table#shags td.char_del').show();
  7. }
  8.  
  9. }
  1. <table border="0" cellpadding="5" cellspacing="0" width="100%" id="shags">
  2. <tr><td><?php $inCore->insertEditor('vars_descr[]', $mod['vars_descr'], '220', '100%'); ?></td></tr>
  3. </table>
  4. <div style="margin:5px;margin-bottom:10px;">
  5. <a href="javascript:addShag()">Следующий шаг</a>
  6. </div>
#9 7 января 2013 в 02:24
  1.  
  2. function addShag(id){
  3. var new_id = id + 1;
  4. var form = document.getElementById("form").innerHTML;
  5.  
  6. var form = form.split("vars_descr\[0\]").join("vars_descr["+new_id+"]");
  7. $('<tr><td>'+form+'</td></tr>').appendTo('table#shags');
  8.  
  9. $('#next_step').attr('href','javascript:addShag('+new_id+')');
  10. //$int = $num + 1;
  11. if ($('table#shags tr.var').length > 1){
  12. $('table#shags td.char_del').show();
  13. }
  14.  
  15. }
  1.  
  2. <table border="0" cellpadding="5" cellspacing="0" width="100%" id="shags">
  3. <tr><td id="form"><?php $inCore->insertEditor('vars_descr[0]', $mod['vars_descr'][0], '220', '100%'); ?></td></tr>
  4. </table>
  5. <div style="margin:5px;margin-bottom:10px;">
  6. <a href="javascript:addShag(0)" id="next_step">Следующий шаг</a>
  7. </div>
  8.  
это поле, насколько я понял, для добавления. при редактировании каким образом собираетесь инфу выводить? или не через эту форму? т.к., как верно сказал maxisoft, $mod['vars_descr'] — является массивом, т.е. и ему нужно явно указывать ключи
#10 7 января 2013 в 12:03
на счет этого $mod['vars_descr'], да я знаю что тоже нужно указывать в явную, но на этом не заморачивался т.к. можно сделать по аналогии с $mod['vars_descr'], ваш способ попорбую, заранее благодарю.
#11 7 января 2013 в 18:46
Спасибо, работает.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.