2017-02-02 17 views
-1

私は2時間前に検索しましたが、これに対する解決策は見つかりませんでした。AJAX/JSONに&(アンパサンド)を渡す

私はdifferendで試してみました

ここでの私の目標は、注文の追跡のためのリンクを電子メールで送信することです

..

すべてが、それは& charがある場合、リンクが切れますというだけだが、作品...エンコーディングとデコーディングが、私はいくつかの時間後にこので立ち往生しています。..

は、したがって、私は..コーディングのご主人からいくつかの助けを

注意を大好きだ:貼り付けたタラでは、主に下のいくつかの部分があり、おそらく質問に答える必要はありませんが、必要に応じて貼り付けています。

マイコード:君たち事前に

var snr = parentTR.find('.comment').val(); 

var tracklink = 'http://www.silversmurfen.se/?route=common/track&nr=' + snr; 
var kommentar = 'Din order är nu skickad. Du har sändningsnummer ' + snr + '. Du kan spåra ditt paket genom följande länk: ' + tracklink; 



var namn = parentTR.find('.nameclass').html(); 
var id = parentTD.attr("id"); 

if (true == true) { // ÄNDRA FÖRSTA TRUE TILL "knappval" OM DU VILL HA POPUP BEKRÄFTELSE PÅ KNAPPTRYCK. 

    $.ajax({ 
     url: '<?php echo $catalog; ?>index.php?route=api/order/history&token=' + token + '&store_id=0&order_id=' + id, 

     type: 'post', 
     dataType: 'json', 
     data: 'order_status_id=' + 10 + '&notify=' + 1 + '&override=' + 0 + '&append=' + 0 + '&comment=' + kommentar, 
     beforeSend: function() { 
      parentTD.find('.betald_knapp').button('loading'); 
     }, 
     complete: function() { 
      parentTD.find('.betald_knapp').button('reset'); 
     }, 
     success: function(json) { 
      $('.alert').remove(); 

      if (json['error']) { 
       $('#history').before('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); 
      } 

      if (json['success']) { 
       parentTR.find('.nameclass').html("<b>" + namn + "</b>"); 
       parentTR.find('.statusclass').html("<b>Skickad</b>"); 
      } 
     }, 
     error: function(xhr, ajaxOptions, thrownError) { 

      alert(thrownError + "\r\n" + xhr.statusText + "\r\n\n" + xhr.responseText); 
     } 
    }); 

ありがとう!

+0

カットされたものはどこですか?あなたは 'tracklink'を意味しますか?クライアントのJSコード、受信したサーバー、または送信された電子メールで、それがカットされますか? – JJJ

+0

トラックリンクはkommentarの一部ですので、送信されたメールには切り詰められて以来、&その後は表示されません。 – TryingToLearn

答えて

0

encodeURIComponent関数は、文字列内の特殊文字をフォームデータとクエリ文字列形式に変換します。

つまり、jQueryを使用しているため、手動で文字列を生成しないでください。オブジェクトをdataに渡し、jQueryでエンコードします。

data: { 
    order_status_id: 10, 
    notify: 1, 
    override: 0, 
    append: 0, 
    comment: kommentar 
}, 
+0

ありがとうございました。データ部分を配列に変更しましたが、今度は次のようにコード化します: https ://www.silversmurfen.se/?route = common/track&amp;%3bnr = aaa 私がそれを必要とするとき: https://www.silversmurfen.se/?route=common/track&nr=aaa – TryingToLearn

+0

@TryingToLearn - どうやってそれができるのか分かりません。 'kommentar'の'& '文字を'%26'に変換し、何も '&'に変換しないでください。あなたはそれを行う他のコードを持っている必要があります。 – Quentin

関連する問題