Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2013, 20:57
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

передача данных из таблицы в php
Господа, такой вопрос. Есть таблица, заполняется добавлением строк через table.insertRow, insertCell. Визуально на странице таблица заполняется. Как можно данные этой таблицы передать на сервер (PHP)?
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2013, 21:12
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

alexvb,
через Аякс
К примеру http://jquery-docs.ru/Ajax/jQuery.po...tacallbacktype
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2013, 09:24
Аспирант
Отправить личное сообщение для alexvb Посмотреть профиль Найти все сообщения от alexvb
 
Регистрация: 21.04.2010
Сообщений: 34

Deff, спасибо огромное!
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2013, 01:06
Новичок на форуме
Отправить личное сообщение для LOCb Посмотреть профиль Найти все сообщения от LOCb
 
Регистрация: 03.04.2013
Сообщений: 9

Доброго времени суток. Столкнулся с параллельной проблемой.
Есть таблица, в ечейках лежат input`ы. Задача: сделать кнопку, которая добавляет в таблицу строчки. Я сделал так:
function cl()
{

kol++;

document.getElementById('table_element').innerHTML =document.getElementById('table_element').innerHTM L+'<tr><td><!--&nbsp;Производитель--><select class="inp" name="maker'+kol+'" size="1"><option value="Форпост">Форпост</option><option value="Геона">Геона</option></select></td><td><!--&nbsp;Марка--><input class="inp" name="model'+kol+'" type="text" size="10" maxlength="25"/></td><td><!--&nbsp;Раз-р--><input class="inp" name="size'+kol+'" type="text" size="8" maxlength="10"/></td><td><!--Открыв--><select class="inp" name="rl'+kol+'" size="1"><option selected="" value=""></option><option value="Прав">Прав</option><option value="Лев">Лев</option></select></td><td><!--&nbsp; Кол-во--><input class="inp" name="tk'+kol+'" type="text" size="5" maxlength="8" /></td><td><!--&nbsp;Цена--> <input class="inp" name="tz'+kol+'" type="text" size="15" maxlength="20"/></td></tr>';
var i= document.getElementById('num').value;
var a=parseInt(i)+1;
document.getElementById('num').value=new String(a);
}
Проблема в следующем. Юзер заполняет инпуты в строчках, а когда нажимает "добавить строку", то функция перерисовывает таблицу заново и текст в инпутах слетает во всей таблице. В первом посте увидел намёк на решение проблемы, но на скрипте пишу второй день, подскажите по подробнее.


И кстати есть у меня ответ на первый пост. Именно посредством PHP. Из функции выше видно, что инпутам к имени приписывается номер строчки( var kol). Вся таблица находится внутри тэга <form> и после таблицы следует <input id="num" name="kolvo" type="hidden" value="1"/>
Последняя строка функции задаёт в скрытом инпуте количество имеющихся строк. А скрипт обработчик - счётчик от 1 до $_POST[kolvo] c циклом, если надо подробнее - пишите.
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2013, 01:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Лось, во-первых, оборачивай код в
[JS]..[/JS]

Во-вторых, твой пример не работает в IE8.
В-третьих смесь js и html в кучу вызывает тошноту и головную боль.
В-четвертых не нужно ни каких kolvo. Если поля именовать как name="field[]" то в php придет массив $_POST['field'].
Делай так: изначально у тебя же есть как минимум одна строка таблицы? Вот и клонируй ее через cloneNode(true). Потом клонируешь клон и добавляешь в таблицу.
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2013, 01:50
Новичок на форуме
Отправить личное сообщение для LOCb Посмотреть профиль Найти все сообщения от LOCb
 
Регистрация: 03.04.2013
Сообщений: 9

Не суди строго. Второй день JS учу. По поводу IE - я пишу не для широкого пользования, у меня просто есть задача написать небольшую программу с каталогом и генерацией документов, с числом клиентов от 1 до 20. Я не профи и не скоро им стану. В пост уходит всё как надо, это уже проверено, всё работает. В общем, мой вариант астрономически далёк от совершенства, но всётаки он работает. Спасибо за критику, учту замечания.

Кстати о "шедеврах"... ещё одна адовая строчка родилась:
...
cell1.innerHTML='<select class="inp" name="maker'+kol+'" size="1"> <?php include('../../../config/makers.php'); ?></select>';
...

У меня чуть мозг не взорвался когда ЭТО появилось на уме.
Ответить с цитированием
  #7 (permalink)  
Старый 03.04.2013, 02:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от LOCb
У меня чуть мозг не взорвался когда ЭТО появилось на уме.
В /config/ файл выводящий теги <option>? Действительно, уму не постижимо ))
Ответить с цитированием
  #8 (permalink)  
Старый 03.04.2013, 02:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<table id="mytable">
    <tr>
        <td><input /></td>
        <td><select><option>Бла бла</option></select>
    </tr>
</table>
<button id="mybutton">Еще</button>
<script>
(function(){
    var table = document.getElementById('mytable'),
         tbody = table.tBodies[0];
         button = document.getElementById('mybutton'),
         sample = table.rows[0];
    
    button.onclick = function() {
        tbody.appendChild(sample.cloneNode(true));
    }
})()
</script>
Ответить с цитированием
  #9 (permalink)  
Старый 03.04.2013, 02:52
Новичок на форуме
Отправить личное сообщение для LOCb Посмотреть профиль Найти все сообщения от LOCb
 
Регистрация: 03.04.2013
Сообщений: 9

Сообщение от danik.js Посмотреть сообщение
Если поля именовать как name="field[]" то в php придет массив $_POST['field'].
.
Можно об этом явлении поподробнее? Можно это обойти?
Ответить с цитированием
  #10 (permalink)  
Старый 03.04.2013, 03:08
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от LOCb
Можно это обойти?
Это простой массив. Не умеешь обходить массивы?
foreach(array('a','b') as $item) {
    echo $item;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача данных из Uploadify в php frutality jQuery 9 22.04.2016 03:54
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Изменение окраски строк таблицы, исходя из данных? Space-06 Events/DOM/Window 4 14.02.2012 21:32
Передача данных из JS в PHP - что не так? Rokugan Общие вопросы Javascript 16 30.09.2011 18:52