Nasıl bir PHP değişkeni olarak bir JavaScript değişkeni kullanabilirsiniz?

4 Cevap php

PHP değişkenleri olarak PHP koduna JavaScript değişkenler eklemek için çalışıyorum, ama bunu yaparken sorun yaşıyorum. Bir düğme tıklandığında, aşağıdaki işlev denir:

<script type="text/javascript">
    function addTraining(leve, name, date)
    {
        var level_var = document.getElementById(leve);
        var training_name_var = document.getElementById(name);
        var training_date_var = document.getElementById(date);

        <?php
            $result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible.");
        ?>

</script>

Nasıl bu sorunun giderilmiş olabilir?

4 Cevap

PHP sunucu tarafında çalıştırılır. JavaScript sayfayı isteyen kullanıcının tarayıcısında istemci tarafında çalıştırılır. JavaScript yürütüldüğünde zaman olursa olsun sunucuda PHP erişim yoktur. client-side vs server-side coding ile ilgili ayrıntılar bu makaleyi okuyun.

Ne Özetle şöyle olur:

  • Masanın altında bilgisayarınızdaki tarayıcınızda bir bağlantıyı tıklayın
  • Tarayıcı bir HTTP isteği oluşturur ve Internet üzerindeki bir sunucuya gönderir
  • O isteği işleyebilir eğer sunucu denetler
  • Isteği bir PHP sayfası için ise, PHP yorumlayıcı başladı
  • PHP yorumlayıcısı istenen sayfadaki tüm PHP kodu çalıştırmak olacaktır
  • Bu konuda hiçbir ipucu çünkü PHP yorumlayıcı, herhangi bir JS kodu çalıştırmak GEÇMEZ
  • Sunucu geri tarayıcınıza tercüman tarafından monte sayfayı göndereceğiz
  • Tarayıcınız sayfa işlemek ve size bunu gösterecektir
  • JavaScript bilgisayarınızda çalıştırılır

Senin durumunda, PHP sayfanın içine JS kod yazacak, böylece sayfa tarayıcınızda işlenen zaman idam edilebilir. O zaman, JS Snippet'inizdeki PHP kısmı artık mevcut. Zaten sunucu üzerinde idam edildi. Bir SQL sorgu dizesini içeren bir değişken $result oluşturuldu. Bunu kullanmak vermedi, bu yüzden sayfa tarayıcınıza geri göndermek olduğunda, gitti. Sayfası tarayıcınızda işlenen sourcecode bakabilirsiniz. Eğer PHP kodu koymak pozisyonda bir şey olmadığını göreceksiniz.

Yapmanız aradıklarını yapmak için tek yolu da değildir:

  • bir PHP komut dosyası veya bir yönlendirme yapmak
  • bir PHP komut dosyası için bir AJAX arama yapmak

değerleri ile veritabanına eklemek istiyorum.

PHP sunucu üzerinde çalışır. Bazı metin (genellikle) verir. Bu daha sonra istemci tarafından ayrıştırılır.

Sırasında ve istemci üzerinde ayrıştırma sonra, JavaScript çalışır. Bu aşamada bir şey yapmak için PHP script için çok geç.

Geri PHP bir şey almak istiyorsanız, yeni bir HTTP isteği yapmak gerekiyor ve bu verileri (sorgu dizesinde (GET veri ya) veya ileti gövdesi (POST veri) sayılabilir.

Sen bunu yapabilirsiniz:

  • Konumunu ayarlama (sadece GET)
  • (FormElement.submit() yöntemi ile) bir form gönderme
  • XMLHttpRequest nesne (yaygın Ajax olarak bilinen teknik) kullanılması. Çeşitli kütüphaneler, örneğin, burada sizin için ağır kaldırma bazı do YUI ya da jQuery.

Seçtiğiniz şimdiye kadar hangi seçeneği, PHP temelde aynıdır. $_GET okumak veya $_POST, veritabanı kodu çalıştırın, daha sonra istemci bazı verileri dönmek.

Sen ne istiyorsun, ama böyle değil. Yapmanız gereken geri ayrı bir PHP komut veritabanı işlemi yapabilirsiniz sunucuya JavaScript bir AJAX isteği olun.

Ben senin gibi bir kaç hafta önce aynı sorun vardı; ama PHP ve JavaScript arasındaki değişkenleri alışverişi için mükemmel bir çözüm icat etti. Bu benim için iyi çalıştı:

  1. Bir HTML sayfasında gizli bir form oluşturma

  2. O gizli formda bir metin kutusu veya Textarea oluşturma

  3. Tüm kodunuzu alfabesiyle yazılmış sonra, bu metin kutusuna değişkenin son değerini saklamak

  4. JavaScript değişkenin değerine erişmek için PHP $ _REQUEST ['textbox name'] satır kullanın.

Ben bu hile sizin için çalışır umuyoruz.