Ben bir formu göndermek için jquery kullanırken sorun yaşıyorum.

5 Cevap php

Bir kullanıcı bir bağlantıyı tıkladığında o paypal gitmek için bir formu göndermek için jquery ajax kullanır. Bu nedense çalışmıyor. Ben herhangi bir yardım için teşekkür ederiz.

HTML link:

<a href="#" onClick="javascript:go_paypal();">Paypal</a>

JS fonksiyonu:

function go_paypal() {

data = 'req_paypal=1';

$.blockUI({ message: '<h1> Going to Paypal...</h1>',css:{background:'#000'} });
    $.ajax({
      type: "POST",
      url: "index.php",
      data: data,
      success: function(data) { $("#paypal_form").html(data); $("#payPalForm").submit(); } ,
      error: function() {$.unblockUI(); alert('Unable to communicate to server.'); }
    }); 
    return false;
}

PHP kodu:

if(isset($_POST['req_paypal']) && $_POST['req_paypal'] == 1 ) {


    $sql = 'INSERT INTO `transactions` (id,type,ip,time,ammount,status) VALUES (NULL,1,\''.$_SERVER['REMOTE_ADDR'].'\',\''.time().'\',\''.$global['paypal_prod_amount'].'\',0) ';
    echo $sql;
//      $sql2 = 'INSERT INTO `users` (id,email,password,referred_by,referrals) VALUES ('',)';

    mysql_query($sql);

    $id = mysql_insert_id();

    $html = '
    <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" id="payPalForm">
<input type="hidden" name="item_number" value="One Year of Imgur Pro">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="business" value="'.$global['paypal_email'].'">
<input type="hidden" name="custom" value="'.base64_encode($id).'">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="return" value="'.$global['paypal_return'].'">
<input name="item_name" type="hidden" id="item_name" value="One Year of Imgur Pro" >
<input name="amount" type="hidden" id="amount" value="'.$global['paypal_prod_amount'].'" >
</form>
    ';

    echo $html;exit;
}

5 Cevap

veri nesnesi bir json nesne değil, bir dize olmalıdır.

Bu deneyin:

function go_paypal() {
    data = { req_paypal: 1 };

    $.blockUI({ message: '<h1> Going to Paypal...</h1>', css:{background:'#000'} });
        $.ajax({
          type: "POST",
          url: "index.php",
          data: data,
          success: function(data) { $("#paypal_form").html(data).submit(); } ,
          error: function() { $.unblockUI(); alert('Unable to communicate to server.'); }
        });
}

Ben ayrıca bir etiketi değiştirmek için öneririm

$("#go_paypal").click(function() { go_paypal(); }

veya

<a href="javascript:go_paypal();">Paypal</a>

bağlantı tıklandığında sayfa alışkanlık üst kaydırılabileceği bu şekilde

Lütfen success fonksiyonu içerisine gibi, html() için global değişkeni data geçiyoruz görünüyor. Biraz daha dikkatli değişkenler adlandırma deneyin.

Bu deneyin:

function go_paypal() {

var postData = 'req_paypal=1';

$.blockUI({ message: '<h1> Going to Paypal...</h1>',css:{background:'#000'} });
    $.ajax({
      type: "POST",
      url: "index.php",
      data: postData,
      success: function(data) { $("#paypal_form").html(data); $("#payPalForm").submit(); },
      error: function(e) {$.unblockUI(); alert('Unable to communicate to server.'); }
    }); 
    return false;
}

Biz gerçekten çalışmıyor ne bilmiyorum çünkü burada ne yazık ki sorun çok belirsiz görünüyor. Çalışmıyor ne olduğunu bulmak için benim temel öneri PHP raporlama hata açmak ve ardından sürecinin her aşamasında çıkış bol miktarda yazdırmaktır. Eğer onlar olması gerektiğini düşünüyorum ne olup olmadığını görmek için her aşamada değişken değerleri yazdırın. Vb Bu, bir alt yordam girdiğinizde size bildirmek için Print mesajları şey yanlış giderse nereye daraltmak yardımcı olacaktır. Çoğu zaman, size sadece bir şey yanlış yazılmış olduğunu göreceksiniz.

Ben dizi global $ görmek, ancak tanımlanmaya görünmüyor. Eğer $ GLOBALS demek istediniz? Ben bu sorun şüpheli olur. Eğer test ederken PHP üzerinde raporlama Hatanızı açarsanız, tanımsız bir değişken hakkında bazı şikayetler görmelisiniz. Ayrıca, test, çift kontrol sırasında tüm değerleri ve tüylenme testi emin olun. Bazı sorunlar çok geç canlı gider sonra düzeltmek kadar belirgin olmayabilir.

. Önce bir giriş PHP form göndermek ve aynı zamanda teslim () teslim kod $ ("# payPalForm") yürütmek ajax ve Firebug getiriliyor olmadan kodunda bu formu denemek eklemek için çalışacaktı; çalıştığını görmek için.

<a href="javascript:go_paypal();">Paypal</a> Ben aynı sorunu vardı ve a'in onclick işleyici idi ... Yani bu işe yaramazsa bana ver -1 ben sadece benim önceki dayalı yardım etmeye çalışıyordum Yüklü: Um ... sen denedin mi deneyim. =)