Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   <input type="submit"> передача данных формы и редирект на нужную страницу. (https://javascript.ru/forum/misc/37213-input-type%3D-submit-peredacha-dannykh-formy-i-redirekt-na-nuzhnuyu-stranicu.html)

Veritaspl 11.04.2013 17:53

<input type="submit"> передача данных формы и редирект на нужную страницу.
 
Подскажите пожалуйста, есть форма
<div style="display:none;">
<div class="highslide-maincontent" id="my-content">

<form id="sen" name="sen" method="post" action="/service/form.html">
<div class="calc" align="center">
<br><span class="red-zag"><strong>Кредитный калькулятор:</strong></span><br><br>
<table class="credit-param-tab"><tr>
<td class="op" align="left" style="padding:10px;">Цена товара:</td>
<td align="left" class="pricee1"><span class="pricee">'.$price.' грн.</span></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;">Первоначальный взнос:</td>
<td align="left" class="cena1"><input name="cena" class="cena_in" type="text" size="4" value="1000" onchange="calc()"> грн.</td>
</tr><tr>
<td class="op" align="left" style="padding:10px;">Количество месяцев:</td>
<td align="left" class="mes1"><input name="mes" class="mes" type="text" size="4" value="6" onchange="calc()"></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;"><strong>Ежемесячный платеж:</strong></td>
<td class="poh-cena2" align="left"><b><span class="mes"></span></b></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;"><strong>Переплата:</strong></td>
<td class="poh-cena2" align="left"><b><span class="per"></span></b></td>
</tr></table>

</form>

 <div class="shs-tocart shk-item" align="center">
 <form action="[~'.$id.'~]" id="kor" method="post">
          
           <fieldset>
          <input type="hidden" name="shk-id" value="'.$id.'"/> 
          
    


<p style="float:right;">
<br>
<br>
<div id="credit_terms">
<a href="/top/oplata.html#credit" target="_blank"><strong>Кредитные условия</strong></a>
</div>
</p>
      <br>

      <div align="center">
           <div class="shs-price">
           <input type="submit" name="submit" class="button2-credit" value="Оформить" title="Оформить"/>
           </div>
      </div>
      </fieldset>
    </form>
  </div>
</div>


Как сделать так. чтобы при нажатии на
<input type="submit" name="submit" class="button2-credit" value="Оформить" title="Оформить"/>
форма не только отправлялась на сервер но и происходил переход с этой страницы на другую, буду очень благодарен помощи!

danik.js 11.04.2013 18:01

Серверный скрипт должен отправить заголовок Location page_to_redirect.html

Veritaspl 11.04.2013 18:12

Цитата:

Сообщение от danik.js (Сообщение 245616)
Серверный скрипт должен отправить заголовок Location page_to_redirect.html

Если можно чуть-чуть подробней пожалуйста? Я пока уж совсем зеленый...
То есть код ПХП должен отправить Location page_to_redirect.html? Как правильно это сделать?

dastingo 11.04.2013 18:32

В пхп
<?php
// эта ф-ия направит куда нужно
header('Location: your_page.html');
?>

Veritaspl 11.04.2013 18:39

Спасибо,понял, но куда впихнуть ее в этот код, чтоб эта функция срабатывала после наджатия Submit ?

<?php
session_start();
if (($price > 2000) && ($price < 100000))
//if ($price == 5057)
{
//echo '<script>$(function() {calc2 ();})</script>'; // запуск функции очистки калькулятора

echo '


<div style="display:none;">
<div class="highslide-maincontent" id="my-content">

<form id="sen" onsubmit="..; return true; " name="sen" method="post" action="#">
<div class="calc" align="center">
<br><span class="red-zag"><strong>Кредитный калькулятор:</strong></span><br><br>
<table class="credit-param-tab"><tr>
<td class="op" align="left" style="padding:10px;">Цена товара:</td>
<td align="left" class="pricee1"><span class="pricee">'.$price.' грн.</span></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;">Первоначальный взнос:</td>
<td align="left" class="cena1"><input name="cena" class="cena_in" type="text" size="4" value="1000" onchange="calc()"> грн.</td>
</tr><tr>
<td class="op" align="left" style="padding:10px;">Количество месяцев:</td>
<td align="left" class="mes1"><input name="mes" class="mes" type="text" size="4" value="6" onchange="calc()"></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;"><strong>Ежемесячный платеж:</strong></td>
<td class="poh-cena2" align="left"><b><span class="mes"></span></b></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;"><strong>Переплата:</strong></td>
<td class="poh-cena2" align="left"><b><span class="per"></span></b></td>
</tr></table>

</form>

 <div class="shs-tocart shk-item" align="center">
 <form action="[~'.$id.'~]" id="kor" method="post">
          
           <fieldset>
          <input type="hidden" name="shk-id" value="'.$id.'"/> 
          
    


<p style="float:right;">
<br>
<br>
<div id="credit_terms">
<a href="/top/oplata.html#credit" target="_blank"><strong>Кредитные условия</strong></a>
</div>
</p>
      <br>

      <div align="center">
           <div class="shs-price">
           <input type="submit" name="submit" class="button2-credit"  value="Оформить" title="Оформить"/>
           </div>
      </div>
      </fieldset>
    </form>
  </div>
</div>
<div id="kons-bord-credit"></div><div id="kons-bord-credit2"></div> 
</div>
</div>


<a href=".highslide-maincontent"  onclick="calc();" class="sovetu-under">
	<strong>Купить в кредит</strong>
</a>




';

}
?>

Skvor 11.04.2013 19:33

Цитата:

Сообщение от Veritaspl (Сообщение 245629)
Спасибо,понял, но куда впихнуть ее в этот код, чтоб эта функция срабатывала после наджатия Submit ?

Значит Вы не поняли. Браузер отправляет форму по тому URL, который указан в качестве action вашей формы. То, что будет отображено браузером как ответ и есть результат вывода этого action. При желании, можно написать обработчик, который выдаёт страницу с редиректом, или, более грамотно, делает редирект на уровне 300-х кодов ответа сервера.

Рекомендую до PHP ознакомиться с HTML и понятием URL. Также, желательно поверхностно посмотреть работу и конфигурирование серверов и вопрос CGI.

Veritaspl 12.04.2013 12:27

Цитата:

Сообщение от Skvor (Сообщение 245638)
Значит Вы не поняли. Браузер отправляет форму по тому URL, который указан в качестве action вашей формы. То, что будет отображено браузером как ответ и есть результат вывода этого action. При желании, можно написать обработчик, который выдаёт страницу с редиректом, или, более грамотно, делает редирект на уровне 300-х кодов ответа сервера.

Рекомендую до PHP ознакомиться с HTML и понятием URL. Также, желательно поверхностно посмотреть работу и конфигурирование серверов и вопрос CGI.

Поучили, поучили, а я лох в JS взял и нашел оптимальное решение в несколько строк.
function go() { top.location.href="[(site_url)]"+shkOptions.orderFormPage; }

function on() {
    timeoutId = setTimeout(go, 200)
}


<div style="display:none;">
<div class="highslide-maincontent" id="my-content">

<form id="sen"  name="sen" method="post" action="#">
<div class="calc" align="center">
<br><span class="red-zag"><strong>Кредитный калькулятор:</strong></span><br><br>
<table class="credit-param-tab"><tr>
<td class="op" align="left" style="padding:10px;">Цена товара:</td>
<td align="left" class="pricee1"><span class="pricee">'.$price.' грн.</span></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;">Первоначальный взнос:</td>
<td align="left" class="cena1"><input name="cena" class="cena_in" type="text" size="4" value="1000" onchange="calc()"> грн.</td>
</tr><tr>
<td class="op" align="left" style="padding:10px;">Количество месяцев:</td>
<td align="left" class="mes1"><input name="mes" class="mes" type="text" size="4" value="6" onchange="calc()"></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;"><strong>Ежемесячный платеж:</strong></td>
<td class="poh-cena2" align="left"><b><span class="mes"></span></b></td>
</tr><tr>
<td class="op" align="left" style="padding:10px;"><strong>Переплата:</strong></td>
<td class="poh-cena2" align="left"><b><span class="per"></span></b></td>
</tr></table>

</form>

 <div class="shs-tocart shk-item" align="center">
 <form action="[~'.$id.'~]" id="kor" method="post">
          
           <fieldset>
          <input type="hidden" name="shk-id" value="'.$id.'"/> 
          
    


<p style="float:right;">
<br>
<br>
<div id="credit_terms">
<a href="/top/oplata.html#credit" target="_blank"><strong>Кредитные условия</strong></a>
</div>
</p>
      <br>

      <div align="center">
           <div class="shs-price">
           <input type="submit" name="submit" class="button2-credit" onclick="on()" value="Оформить" title="Оформить"/>
           </div>
      </div>
      </fieldset>
    </form>
  </div>
</div>
<div id="kons-bord-credit"></div><div id="kons-bord-credit2"></div> 
</div>
</div>


<a href=".highslide-maincontent"  onclick="calc();" class="sovetu-under">
	<strong>Купить в кредит</strong>
</a>

danik.js 12.04.2013 15:32

Цитата:

Сообщение от Veritaspl
Поучили, поучили, а я лох в JS взял и нашел оптимальное решение в несколько строк.

Вынужден тебя расстроить: это не оптимальное решение, а костыль, который к тому же может нестабильно работать. А раз сайт коммерческий, то все должно работать максимально четко.
Вижу что это MODx Evo. Оптимальным решением будет плагин на нужное событие (если возможно) либо вызов своего сниппета.


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