[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отправка методом пост
Страницы: 1, 2
leonw
Здравствуйте! можете подсказать как передать данные которые находятся в таблице?
пр: выбрал я номер 2 и 4 и их передал или 3 и 4 и их передал..

<form name="sender" method="post" action="send.php">
<table>
<tr>
<td
name=name1 value=111 id=222>1</td>
<td
name=name1 value=333 id=444>2</td>
<td
name=name1 value=555 id=666>3</td>
<td
name=name1 value=777 id=888>4</td>
</tr>
</table>
<input
type="submit" name="submit" value="Отправить">
</form>



<?php
if($_POST['submit'])
{
$name1 = substr(htmlspecialchars(trim($_POST['name1'])), 0, 100);
echo "$name1";
exit;
}
?>
Ron
Боюсь только через JavaScript, причем его сложность зависит от интерфейса, который вы хотите реализовать. Ну или подписывать к каждой строке/полю checkbox. Если таблица большая, то идея не самая лучшая.

sergeiss
Ron, какой JS... ТС даже HTML не понимает, ему основы нужны.

leonw, просто используй массив checkbox-ов. И тогда ты получишь на сервере только те чек-боксы, которые были отмечены. И они будут сгруппированы под одним именем, которое ты им задашь.
То есть, короче говоря, почитай основы HTML, чтобы использовать правильные элементы внутри формы. Таблица <table> нужна для визуализации данных, а для работы с данными существуют <input>, <select>, <textarea>....

Цитата (leonw @ 7.01.2016 - 23:49)
echo "$name1";

Ты можешь объяснить, зачем тут двойные кавычки поставил?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Ron
А если таблица содержит 1000 ячеек, что может быть вполне реальной цифрой?
Нагрузка на браузер вероятно станет неадекватной. Раньше подобная проблема существовала и наблюдались некислые тормоза при большом количестве элементов формы.
sergeiss
Ron, а какая разница, через форму ты отправляешь или еще как? Количество данных все равно будет одинаковое smile.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Ron
Вопрос чисто в ресурсах браузера, отрисовать 1000 чекбоксов хрен знает сколько сожрет мощности. Особенно на телефоне. Если таблица небольшая, почему бы и нет. Только без JS все-равно будет выглядеть отвратно скучно. Раз уж вовлекать яваскрипт, то сделать как следует. Тоглить бэкграунд выбранной ячейки, собрать объект и отправить его одним инпутом JSON строкой. Или вообще AJAX-ом, тут от интерфейса зависит.

Я бы так сделал! ) Неочень сложно ведь. biggrin.gif
sergeiss
Ron, проведи эксперимент smile.gif Сделай и так, и эдак. Замерь время (и оцени, сколько кода придется написать в том и другом случаях). Можешь выложить это на какой-нибудь общедоступный ресурс, чтобы форумчане могли оценить твои изыски. Вот это будет разговор по делу. А пока он на уровне "мне кажется". Вот мне кажется, что отрисовать 1000 чекбоксов чисто средствами браузера будет быстрее, чем нарисовать эти чекбоксы внутри ячеек таблицы средствами JS. Что касается отправки на сервер, так вообще без разницы должно быть.
И кстати, если на реальной, а не на тестовой странице на самом деле будет 1000 чекбоксов, то за такое надо руки отрывать дизайнеру wink.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Ron
Цитата (sergeiss @ 8.01.2016 - 01:56)
Вот мне кажется, что отрисовать 1000 чекбоксов чисто средствами браузера будет быстрее, чем нарисовать эти чекбоксы внутри ячеек таблицы средствами JS.

Я вот об этом:
грубая наметка, допилить под конкретную задачу.
<!DOCTYPE html>
<
html>
<
head>
<
title>DEMO</title>
<
meta charset="UTF-8">

<
style>
.
t{border-spacing: 5px;}
.t td{border: 1px solid black;cursor: pointer;
-
webkit-user-select: none;-moz-user-select: none;
-
ms-user-select: none;user-select: none;}
.active{background: LightGreen;}
</style>

</
head>

<
body>
<
script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<?php
if(!empty($_POST['content']))
{
$result = json_decode($_POST['content'], true);
print_r($result);
}
?>

<table class="t">
<
tr>
<
td data-name="col1" data-value="1">Ячейка №1</td>
<
td data-name="col2" data-value="2">Ячейка №2</td>
</
tr>
<
tr>
<
td data-name="col3" data-value="3">Ячейка №3</td>
<
td data-name="col4" data-value="4">Ячейка №4</td>
</
tr>
</
table>

<
form id="frm" action="" method="POST">
<
input type="hidden" name="content" value="" />
<
button type="submit">Сохранить</button>
</
form>

<
script>
(
function(){
var obj = {};

$('td').on('click', function(){
var name = $(this).attr('data-name');

if(obj.hasOwnProperty(name)){
delete obj[name];
}
else{
obj[name] = $(this).attr('data-value');
}

$(this).toggleClass('active');
});

$('#frm button').on('click', function(event){
event.preventDefault();
if(!$.isEmptyObject(obj)){
$('#frm input').val(JSON.stringify(obj));
$('#frm').submit();
}
else{
alert('Choose something');
}
}
);
}).call();
</
script>
</
body>
</
html>


Со всем остальным полностью согласен, включая квалификацию ТС. =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.