2015-06-10 3 views
1

Я пытаюсь добавить метод кодовой системы в мою существующую форму, единственная проблема заключается в том, что форма уже имеет действие формы.Метод купонного кода Ajax jquery

<form id="apply" name="apply" method="post" action="<?php echo $editFormAction; ?>"> 

Я искал высоко и низко для решения и наткнулась на решение комбинации AJAX Java Script/JQuery.

В моем коде i echo значение скидки из базы данных, которое будет использоваться для математики. Я также повторяю сам код купона и общее количество, которое нужно уменьшить.

<tr> 
    <td class="detailnoborder"><label for="Dicount_code">Enter Code for Discount:</label>&nbsp;&nbsp;</td> 
    <td class="detailnoborder1"> 
     <input type="text" tabindex="33" id="coupon" name="coupon_id" size="10"/> 
     <input type="text" tabindex="10" id="T_cost" name="T_cost" size="5" value="<?php echo $row_rsMembershipTypes['Cost']?>"/> 
     <input type="text" tabindex="10" id="Discount" name="Discount" size="5" value="<?php echo $row_rsdiscount['discount']?>"/> 
     <input type="text" tabindex="10" id="D_amount" name="D_amount" size="5" value="<?php echo $row_rsdiscount['D_Cost']?>"/> 
    <input type="button" id="Check" value="Check" onclick="chk_discount()" type="submit"/> 
</tr> 

Я первоначально имел функцию с именем chk_discount которой я был совершенно не уверен, что я делаю.

<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
<script type="text/javascript"> 
    $("#Check").click(function() { 
     $.ajax({ 
     type: "POST", 
     url: 'ajax.php', 
     data:{coupon: $('#coupon').val(), }, 
     success:function(data) { 
     if (data != ''){ 
     //display error message however you would like 
      } 
      } 
     }); 
} 
</script> 

дальнейшие исследования я решил создать функцию, которая подключается к моей ajax.php файла, функция PHP будет в .. если честно им добрее запутаться.

<?php 
    if(isset($_POST['coupon'] == HXAR1){ 
     $D_Cost - $Cost; 
    } 

    return ($Cost); 
    ?> 

В идеале, когда я отправляю Аякс я хотел бы сделать, что математику для вычитания одного значения базы данных с другой, чтобы дать общую стоимость затем будет направляться Paypal на представлении, но проверка скидка будет сделана раньше.

Я не прошу кого-либо сделать это для меня, но какая-то помощь будет глубоко оценена.

ответ

1

Попробую объяснить, что I've понял:

  1. У вас есть код купона, который проверяет с Javascript (на стороне клиента) на PHP (на стороне сервера), что купон имеет зарегистрированный код (HXAR1). Это метод безопасности, который гарантирует, что пользователь не изменит его в коде клиента , а затем изменит ваше значение продукта или использует купон , который не зарегистрирован. Тогда ваш сервер (PHP) является ведущим, чтобы дать эту информацию.

  2. После вызова ajax.php (файл, который будет работать в сервере) от вашего клиента AJAX (Asynchronous JavaScript и метода XML) ваша функция сервера PHP возвращает реальную стоимость после применения купона скидки, то это значение тот, который вам нужно отправить на адрес PAYPAL.

  3. AJAX получит возвращаемое значение PHP в методе успеха, тогда вам нужно будет получить это значение в javascript (на клиенте) и отправить его в PAYPAL.

Попробую объяснить вам, где вы должны написать код:

Посмотрите сниппета I've среагировать. Он легко объяснит вам, как отправлять данные в файл php.

Примечание У вас есть некоторые PHP код, который заставляет меня думать, что у вас есть N вхождений этой структуры, то $ («# Check») или $ («# купон») селекторы не будет работать, если есть больше чем одно вхождение.Я удалил код PHP там, то вы можете использовать свои собственные значения

$("#Check").click(function() { 
 
     $.ajax({ 
 
      type: "POST", 
 
      url: 'ajax.php', 
 
      data: { 
 
      Dis_code: $('#coupon').val(), 
 
      T_cost: $('#T_cost').val(), 
 
      Discount: $('#Discount').val() 
 
      }, 
 
      success: function(data) { 
 
      if (data != '') { 
 
         alert("you succesfully send and received "+data+" from ajax.php"); 
 

 
         //HERE IS THE SUBMIT YOU NEED ALL. IT WILL 
 
         //SUBMIT THE FORM TO THE ORIGINAL ACTION 
 
         $("#apply").submit(); 
 
      } 
 
      }, 
 
      error: function(data){ 
 
      alert("You tried to send data to ajax.php but it didn´t give a OK response"); 
 
      } 
 

 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<tr> 
 
    <td class="detailnoborder"> 
 
    <label for="Dicount_code">Enter Code for Discount:</label>&nbsp;&nbsp;</td> 
 
    <td class="detailnoborder1"> 
 
<form id="apply" name="apply" method="post" action="<?php echo $editFormAction; ?>"> 
 

 
    <br>Coupon<input type="text" tabindex="33" id="coupon" name="coupon_id" size="10" /> 
 
    <br> 
 
    Cost<input type="text" tabindex="10" id="T_cost" name="T_cost" size="5" value="" /> 
 
    <br>Discount<input type="text" tabindex="10" id="Discount" name="Discount" size="5" value=""/> 
 
    <br>DiscountCost<input type="text" tabindex="10" id="D_amount" name="D_amount" size="5" value="" /> 
 
    <br><input type="button" id="Check" value="Check" /> 
 
</tr>

КАК ЭТО РАБОТАЕТ

  • В JQuery click() функция связывает вашу функцию Аякса элемент с идентификатором Проверить (в данном случае кнопку). Если есть более одной кнопки, вы должны сделать ее в по-другому. Проверьте, что кнопка не имеет типа = «отправить», то сначала это будет фиктивная кнопка (до того, как будет выполнена привязка этого клика).

  • $ .ajax выбирает значения из купонов, T_cost и дисковых входов и помещает их в полезную нагрузку данных POST-запроса и отправляет IT после .

  • Ajax.php получит полезную нагрузку данных и сможет использовать свои параметры для выполнения всех необходимых операций. После этого он отправит обратно ОТВЕТ, который получит ajax.

  • $ .ajax получит ответ, отправленный Ajax.php в методе успеха, а затем вы сможете делать с ним что делать. Этот метод будет выполнен сразу после того, как php на стороне сервера выполнит ben и ответ отправлен.

  • В конце концов, в случае успеха() $ .submit() отправит форму, называемую «применить» к ее оригинальному действию.

Надежда это пояснения и код в фрагменте кода прояснит вам. Извините, но мне пришлось удалить php-код, чтобы он запускался.

Во всяком случае, здесь есть информация о яваскрипт и PHP общаться

jQuery Ajax POST example with PHP

Pass variable from jQuery to PHP

+0

У вас есть функция OnClick событие на '$ ("# Check"). Нажмите (function() {...} '. Это привязка jquery click к кнопке« Проверить »: https://api.jquery.com/click/ –

+0

Извините, но я нашел эти ссылки не очень полезными, все еще нуждающимися советов по отправке форм, я хочу представить м после проверки скидки. У меня уже есть одна форма, и мой onclick, похоже, не работает .. – zen

+0

ОК, позвольте мне некоторое время –

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

  • Нет связанных вопросов^_^