2015-07-19 6 views
0
<form action="/devilmaycry/register?action=addtocart" method="post">    
      <input type="hidden" name="user" value="<%=user%>"/> 
      <input type="hidden" name="pid" value="<%=pid%>"/> 
      <input type="submit" value="Add to cart" onclick="add();"/> 
     </form> 

Я использую приведенный выше код, чтобы представить форму и добавить товар в корзину Java-код вызывается следующим образом:Page меняется, когда я отправить форму

else if(n.equals("addtocart")) 
    { 
     String user = req.getParameter("user"); 
     int pid = Integer.parseInt(req.getParameter("pid")); 

     k=o.addintocart(user,pid); 

    if(k==1) 
     { 
      pw.println("<h3>Added to cart !!!<h3>"); 
     } 
     else 
     { 
      pw.println("<h3>Errror , try again <h3><br>"); 
     } 

это добавить продукт в таблицу, но он меняет страницу jsp ... я пытался использовать requestDispatcher, но у URL-адреса есть много параметров, поэтому я хочу что-то другое, через которое я могу сохранить ту же страницу и обновить таблицу также

+0

Можете ли вы показать нам код функции 'add()' javascript? – jbx

ответ

1

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

У вас есть два варианта здесь:

  1. придерживаться традиционного подхода запроса-ответа формы HTTP подачи, и при получении запроса на сервере, чтобы добавить элемент на карту, после того, как вы добавляете на карту, перестройте URL-адрес страницы, на которой отображается информация для пользователя. В этом случае важно использовать подход «Redirect-After-Post» (т. Е. В ответ на форму POST вы переносите перенаправление на страницу). В противном случае, если пользователь обновит страницу, нажав F5, данные формы будут повторно отправлены повторно, а элемент снова добавлен в корзину.

  2. Перейти к подходу AJAX. В функции add() вам необходимо отправить форму, используя Javascript. Если вы используете JQuery, вам очень легко сделать это. Существуют различные вопросы/примеры, если вы ищете вокруг, например, один here.

В последнем случае вам нужно будет немного изменить, как вы обрабатываете информацию от вашего сервлета, но его единственный способ получить браузер, чтобы остаться на той же странице (без перезагрузки его). У вас также есть обработчики success и error, которые вы можете использовать для отображения на экране сообщения для отображения результата.

+0

эй спасибо мужчине ..... я сделал то же самое ... я получил то, что мне нужно –

+0

без проблем ... на какой подход вы идете? AJAX с JQuery? – jbx

+0

Ajax с jquery ... но все же некоторые проблемы ... не могу получить сообщение об ошибке из сервлета –

Смежные вопросы