Я использую кнопки PayPal и хочу вставить запись в базу данных через вызов AJAX (или любой другой метод, который работает), прежде чем кнопка перенаправит пользователя в PayPal.
Я посмотрел на подобные вопросы / ответы, но не могу заставить их работать. Они либо перенаправляются на PayPal, либо вставляют запись базы данных … но не обе.
Сибирские вопросы:
Представлять значения форм перед paypal , кнопка PayPal, представляющая форму и вызывающая вызов Ajax одновременно? , Подается запрос AJAX перед тем, как будет оформлена обычная форма
Это моя форма:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" name="paypalform" id="paypalform"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="XXXXXXXXXXXX"> <button type="submit" class="radius paypal-button" name="submit" alt="PayPal - The safer, easier way to pay online!">Buy Now! <img alt="" border="0" src="http://img.ruphp.com/javascript/pixel.gif" width="1" height="1"> </form>
Это мой javascript:
$('paypalform').submit(function(e) { e.preventDefault(); e.returnValue = false; var $form = $(this); $.ajax({ url: 'ajax.create_sponsorship.php', data: 'XXXXXX', dataType: 'json', context: $form, complete: function() { this.off('submit'); this.submit(); } }); });
Файл PHP, ajax.create_sponsorship.php, возвращает TRUE (если вставка прошла успешно) или FALSE.
При использовании кода выше, браузер автоматически перенаправляет на PayPal, но не вставляет запись в базу данных.
Если я изменил первую строку на это:
$('#paypalform').submit(function(e) {
В принципе, добавление # – тогда вставляется запись базы данных, но она не перенаправляется на PayPal.