• 28-10-2020, 23:14:05
    #1
    İyi günler herkese,
    Arkadaşlar sitemde dil seçeneklerini ve para birimi seçeneklerini bir ayar butonu ile popup olarak görüntülemeye çalışıyorum. Ama ufak bir sorunla karşılaştım.
    Sweetalert kütüphanesini kullandım.
    https://sweetalert2.github.io/

    Şöyle bir kod var:

                <button onclick="langcurrsettings()" type="button" class="btn btn-block btn-settings">
                    <i class="fa fa-cogs"></i>
                </button>        
                <script>
                    function langcurrsettings() {
                        Swal.fire({
                            title: '<strong>General Settings</strong>',
                            icon: '',
                            html:
                            '<br>' +
                            '<span style="font-size:14px">Select Language:</span>' +
                            '<br>' +
                            '<?php echo $language; ?>'+
                            '<br>' +
                            '<span style="font-size:14px">Select Currency:</span>' +
                            '<br>' +
                            '<?php echo $currency; ?>' +
                            '<br>',
                            showCloseButton: true,
                            showCancelButton: false,
                            showConfirmButton: false,
                            focusConfirm: false,
                            focusCancel: false,
                            buttonsStyling: true,
                            confirmButtonText: '<span style="font-size:14px;"><i class="fa fa-thumbs-up"></i> Continue!</span>'
                        })
                    }
                </script>
    Bu kodda "<?php echo $currency; ?>" değişkeni ile para birimini çekmeye çalışıyorum. <?php echo $currency; ?> kodunu script dışında kullanırsam çalışıyor, sayfaya para birimleri geliyor fakat script içinde kullanırsam popup çalışmamaya başlıyor. konsolda "Uncaught ReferenceError: langcurrsettings is not defined at HTMLButtonElement.onclick" şeklinde bir hata alıyorum.

    yada $currency değişkeninin geldiği sayfa olan currency.tpl'nin içini boşaltıp rastgele bir html kodu yazdığımda çalışıyor. ama içinde php kodu varken sorun oluyor.

    currency.tpl içeriği böyle:

    <?php if (count($currencies) > 1) { ?>
    <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="form-currency">
        <?php foreach ($currencies as $currency) { ?>
        <?php if ($currency['symbol_left'] && $currency['code'] == $code) { ?>
        <strong><?php echo $currency['symbol_left']; ?> <?php echo $currency['title']; ?></strong>
        <?php } elseif ($currency['symbol_right'] && $currency['code'] == $code) { ?>
        <strong><?php echo $currency['symbol_right']; ?> <?php echo $currency['title']; ?></strong>
        <?php } ?>
        <?php } ?>
    
          <?php foreach ($currencies as $currency) { ?>
          <?php if ($currency['symbol_left']) { ?>
          <button class="currency-select btn btn-link btn-block" type="button" name="<?php echo $currency['code']; ?>"><?php echo $currency['symbol_left']; ?> <?php echo $currency['title']; ?></button>
          <?php } else { ?>
          <button class="currency-select btn btn-link btn-block" type="button" name="<?php echo $currency['code']; ?>"><?php echo $currency['symbol_right']; ?> <?php echo $currency['title']; ?></button>
          <?php } ?>
          <?php } ?>
      <input type="hidden" name="code" value="" />
      <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
    </form>
    <?php } ?>
    Birlikte çalışmaları için ne şekilde düzenleme yapmam lazım yardımcı olabilecek olan var mı ?
  • 28-10-2020, 23:21:00
    #2
    Dostum php echo yaptığın kodun dışına tırnak ekle “php kodu“; çalışacaktır.
  • 28-10-2020, 23:36:25
    #3
    Merhaba , pm ile AnyDesk veya TW iletirseniz hızlıca yardımcı olabilirim.
  • 28-10-2020, 23:54:18
    #4
    Volt adlı üyeden alıntı: mesajı görüntüle
    Merhaba , pm ile AnyDesk veya TW iletirseniz hızlıca yardımcı olabilirim.
    ufak bir kot işinde benimde yardıma ihtiyacım var yardımcı olurmusunuz
  • 29-10-2020, 00:03:56
    #5
    nacrept adlı üyeden alıntı: mesajı görüntüle
    Dostum php echo yaptığın kodun dışına tırnak ekle “php kodu“; çalışacaktır.
    Ne yazık ki o şekilde de değişen bir şey olmadı. Orada sorun yok aslında, currency.tpl içeriğini normal text veya html olarak değiştirdiğimde çalışıyor. currency.tpl içinde php kodu varken sorun oluyor.

    Volt adlı üyeden alıntı: mesajı görüntüle
    Merhaba , pm ile AnyDesk veya TW iletirseniz hızlıca yardımcı olabilirim.
    Buradan yazma şansınız yok mu.
  • 29-10-2020, 00:42:09
    #6
    Peki js kodunu daha sonra sayfaya inject ettirmeyi denediniz mi?
  • 29-10-2020, 00:52:59
    #7
    nacrept adlı üyeden alıntı: mesajı görüntüle
    Peki js kodunu daha sonra sayfaya inject ettirmeyi denediniz mi?
    Zaten kodların tamamını paylaştım.
    Rica etsem tam olarak nasıl kullanacağımı düzenleyerek yazabilir misin.
  • 29-10-2020, 00:59:12
    #8
    TuncerSK adlı üyeden alıntı: mesajı görüntüle
    Zaten kodların tamamını paylaştım.
    Rica etsem tam olarak nasıl kullanacağımı düzenleyerek yazabilir misin.
    Yani şöyle tarayıcıda sayfayı açtıktan sonra jquery kodlarını kopyalayıp konsola yapıştırdıktan sonra jquerynin içerdiği php kodlarını örnek bir rakam ile değiştirip çalıştırdıktan sonra hata alıp almadığınızı kontrol ettiniz mi? Yazmış olduğunuz hata genelde jqueryden önce jquery ile yazılan kodu algılamasından oluşuyor. Belki de bu TPL dosya yapısıyla alakalı olabilir.
    Dilerseniz anydesk verin bir bakalım keşfedip size de yardımcı olmak isterim.
  • 29-10-2020, 16:55:21
    #9
    Arkadaşlar merhaba sorunu bir nebze çözdüm ama farklı bir problemle karşılaştım.
    İlk olarak nasıl çözdüğüme gelirsek,
    currency.tpl dosyasının içindeki kodları silip tek satır kod yazdığımda popup'ın çalıştığını fark ettim. Alt alta düzenli olarak yazıp, langcurrsettings() fonksiyonumun içine çağırınca popup açılmadığını keşfettim. Daha sonra tüm kodları tek satıra sıkıştırdığımda pop up çalışmaya başladı. Sanırım tek satır olmadığında sweetalert javascript fonksiyonun da ki kullanım yapısını bozuyor. Bu şekilde çözüme ulaştım.

    Karşılaştığım soruna gelirsek, javascriptin içerisine bir form çağırmış oluyorum bunu yaparak. fakat çalışması gereken form butonları işlevini yerine getirmiyor post işlemi çalışmıyor. Bunun nedeni nedir?

    @nacrept; Teklifin için ayrıca teşekkür ederim dün mobile geçmiştim o yüzden dönmem mümkün olmadı.