LINUX.ORG.RU

формирование post запроса внутри таблицы

 ,


1

1

Народ, помогите реализовать следующую задачу. Есть таблица с 5 столбцами. 4 столбца это значения, в пятом столбце находится кнопка. При нажатии на кнопку значения из 4 столбцов должны сформировать POST запрос и отправить его скрипту. для пользователя при нажатии на кнопку должен быть выполнен переход на страницу, на которой будет выведена интересующая пользователя информация. пробовал сделать такое через форму, получается не очень красиво + при проверки страницы на html5 валидатор ругается, что нельзя использовать формы внутри таблицы. я так понял что необходимо копать в сторону javascript. но к сожалению, знания не позваляют этого сделать. может у кого то есть готовое решение?

Ответ на: комментарий от msgascii

я смотрел, что пришло в перловый скрипт, пришли параметры именно всех строк таблицы, то есть 4 параметра в строке, допустим 10 строк. то в перловый скрипт приходит 40 параметров.

почитав в интернете кучу статей, понял что без формы не перейти пост запросом на новую страницу. собственно тогда мысль. может в таблице за место кнопки сделать <input type=«radio»>. а внизу или в вверху страницы сделать форму с кнопкой. выбираем нужную строку, выбираем ее в <input type=«radio»> и нажимает кнопку в форме. переходим на новую страницу пост запросом.

Evgen25
() автор топика
Ответ на: комментарий от Evgen25

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

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

примерно такой код

<html>
<head></head>
<body>
<form action="..." method="post">
<table>
<tr>
	<td><input type="radio" name="radio"></td>
	<td><input type="text" name="param1" value="some val"></td>
	<td><input type="text" name="param2" value="some val"></td>
	<td><input type="text" name="param3" value="some val"></td>
	<td><input type="text" name="param4" value="some val"></td>
</tr>
<!-- здесь еще дофига строк в таблице -->
<tr>
	<td><input type="radio" name="radio"></td>
	<td><input type="text" name="param1" value="some val"></td>
	<td><input type="text" name="param2" value="some val"></td>
	<td><input type="text" name="param3" value="some val"></td>
	<td><input type="text" name="param4" value="some val"></td>
</tr>
<button>send</button>
</table>
</form>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(function(){
	$('form').on('submit', function(e){
		$.each($('form tr'), function(i, v){
			var radio = $(v).find('input[type=radio]').is(':checked');
			if (! radio) {
				$(v).remove();
			}
		})
	})
})
</script>
</body>
</html>
перед сабмитом формы скрипт пробегается по таблице и удаляет невыбранные строки, оставляя только одну выбранную

msgascii
()

Короче, на сколько баллов ЛОР сдал курсовик?

anonymous
()
Ответ на: комментарий от msgascii

вот еще интересный скрипт нашел на просторах интернета:

function openUrl(url, post)
    {
        if ( post ) {
            var form = $('<form/>', {
                action: url,
                method: 'POST',
                target: '_blank',
                style: {
                   display: 'none'
                }
            });
 
            for(var key in post) {
                form.append($('<input/>',{
                    type: 'hidden',
                    name: key,
                    value: post[key]
                }));
            }
 
            form.appendTo(document.body); // Необходимо для некоторых браузеров
            form.submit();
 
        } else {
            window.open( url, '_blank' );
        }
    }
но не понял, как переделать скрипт, если уже имеется запрос (ключ=значение). вдруг кому пригодится

Evgen25
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.