Javascript, отправляющий форму в метод

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

У меня есть форма, которая в настоящее время распечатывает заказ на той же странице.

<form action="mainpage.php" method="post">
<div style="clear:both;padding-bottom:10px">

    <input type="Button" style="width:100px" value="Show order" onclick="saveImageOrder()">

</div>

Saveimageorder() показывает изображение и сохраняет порядок в переменной с именем orderString

function saveImageOrder()
{
    var orderString = "";
    var objects = document.getElementsByTagName('DIV');

    for(var no=0;no<objects.length;no++)
    {
        if(objects[no].className=='imageBox' || objects[no].className=='imageBoxHighlighted')
        {
             if(orderString.length>0) orderString = orderString + ',';
             orderString = orderString + objects[no].id;
        }
    }
    document.getElementById('debug').innerHTML = 'This is the new order of the images(IDs) : <br>' + orderString;    
}

Как это сделать?

11.12.2008 13:11:17
2 ОТВЕТА

Вы можете отправить форму с помощью (обратите внимание, что это не проверено):

document.formname.submit();

Если вам нужно сначала изменить действие (страницу для отправки):

document.formname.action = 'some_other_url';

Если вам нужно отправить форму асинхронно, вам нужно использовать XMLHttpRequest или что-то подобное.

2
11.12.2008 13:19:05

с простым POST (без ajax) вам нужно сохранить результат вашего процесса (извлечение идентификатора порядка изображений) в поле формы:

<input type="hidden" name="imagesorder" value=""/>

в вашей функции вы можете установить значение в это поле после заполнения orderString:

document.getElementsByName('imagesorder')[0].value = orderString;

затем отправьте форму, вы можете сделать это, заменив

<input type="button" .../>

с

<input type="submit" .../>

на стороне сервера вы получите значение в коллекции постов (я не php dev)

$_POST['imagesorder']
1
11.12.2008 14:11:42
Обратите внимание на опечатку в последней строке. Это должно быть $ _POST ['imagesorder']
Rexxars 11.12.2008 13:40:07