Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   передача данных из таблицы в php (https://javascript.ru/forum/server/35366-peredacha-dannykh-iz-tablicy-v-php.html)

LOCb 03.04.2013 03:22

как работает foreach я знаю, не понимаю только, как мне это должно помочь.

danik.js 03.04.2013 03:23

Цитата:

Сообщение от LOCb
как мне это должно помочь

В чем помочь?

LOCb 03.04.2013 03:41

мне нужно в цикле дать имена инпутам. 1 шаг: "первый1", "второй1", "третий1"...
2 шаг: "первый2", "второй2", "третий2"... количество выполнений цикла соответствует количеству добавляемых строчек. Я написал следующее:
var kol=0;
function cl()
{

kol++;

	
	
	var table=document.getElementById("table_element");
var row=table.insertRow(1);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var cell3=row.insertCell(2);
var cell4=row.insertCell(3);
var cell5=row.insertCell(4);
var cell6=row.insertCell(5);
cell1.innerHTML='<select class="inp" name="maker'+kol+'" size="1"> <? include('../../../config/makers.php'); ?></select>';

cell2.innerHTML='<input class="inp" name="model'+kol+'" type="text" size="10" maxlength="25"/>';
cell3.innerHTML='<input class="inp" name="size'+kol+'" type="text" size="8" maxlength="10"/>';
cell4.innerHTML='<select class="inp" name="rl'+kol+'" size="1"><option selected="" value=""></option><option value="Прав">Прав</option><option  value="Лев">Лев</option>';
cell5.innerHTML='<input class="inp" name="tk'+kol+'" type="text" size="5" maxlength="8" />';
cell6.innerHTML='<input class="inp" name="tz'+kol+'" type="text" size="15" maxlength="20"/>';

Но как ты верно заметил "Если поля именовать как name="field[]" то в php придет массив $_POST['field']."
Получается, что цифра на конце имён инпутов теряется при передаче в POST. Функция, которую ты написал, проблему не решает - получаются клоны с идентичными именами. Вопрос: Как дать инпутам имена с номером строки на конце?

danik.js 03.04.2013 04:21

Цитата:

Сообщение от LOCb
Как дать инпутам имена с номером строки на конце?

А для чего? Если имя параметра заканчивается на [] то php автоматически принимает этот параметр как массив значений. Что тебе еще для счастья нужно?

danik.js 03.04.2013 04:33

Допустим имеем параметры: model[]=a&model[]=b&size[]=1&size[]=2
В php работаем в таком ключе:
$models = $_REQUEST['model'];
$sizes = $_REQUEST['size'];

foreach ($models as $key => $value) {
    echo $models[$key];
	echo $sizes[$key], '<br>';
}

LOCb 03.04.2013 10:23

похоже мы друг друга не поняли и только запутали.
выполнение print_r($_POST); выдаёт мне:
Array ( [maker] => Форпост
[model] =>
[size] =>
[rl] =>
[tk] =>
[tz] =>

и они не являются массивами. А должно быть:
[model1] =>
[size1] =>
[rl1] =>
[tk1] =>
[tz1] =>
[model2] =>
[size2] =>
[rl2] =>
[tk2] =>
[tz2] =>
и т.д.
твой вариант не помог.

danik.js 03.04.2013 12:20

Цитата:

Сообщение от LOCb
твой вариант не помог.

Тысячам помогает, а тебе не помог - как так то? Значит в чем-то ошибся ты...
Код я проверял - все как надо работает.

LOCb 03.04.2013 14:03

danik.js,
может созвонимся в скйпе? поможешь?

LOCb 07.04.2013 11:58

danik.js,
сделал как ты советовал, не работает, такое чувство, что сервер просто игнорирует все элементы формы, которые получены через js


Часовой пояс GMT +3, время: 14:45.