I have nasıl php değişken ($ toplam) geçmek için, girdi olarak Harici Javascript?

4 Cevap php

Ben onun değişken olarak bir değişken $ toplam bir php dosyası var.

AS part of my project I have to print a table of results. I call an external javascript whenever i display the table, something like this

echo "<script src='course.js' language='JavaScript'></script>";
echo "<table border='1'>";
echo "<tr>";
echo "<td><td>";

Bu tablonun her satırı bir onay kutusu vardır ve ben tablodaki toplam satır sayısı $ toplam değişken gerekir ki kontrol kutularının sayısı 8'den fazla olup olmadığı komut dosyası denetlemek için çağrı

Benim course.js dosyası ($ toplam varsayarak) bu gibi görünüyor

var count = 0;

for(i=1;i<=$total;i++)
{
    if(document.getElementByTag('course."i"').checked==true)
      count++;
}

if(count==8)
{
    for(i=1;i<total;i++)
    {
    	document.getElementById('course."i"').disable=true;
    }
}
}

4 Cevap

PHP HTML çıktısı zaman komut dosyası gömmek önce, eşit toplam bir JavaScript değişkeni ayarlayın. Gibi bir şey ..

echo "<script type="text/javascript">var php_total = '" . $total . "';</script>";
echo "<script src='course.js' type='text/javascript'></script>";
echo "<table border='1'>";
echo "<tr>";
echo "<td>";

Sonra course.js içeride sadece JS değişken php_total üzerine arayabilirsiniz.

Dürüst olsa, ben yine de yapmak için çalışıyoruz ne% 100 emin değilim ama bunu yapmanın doğru yolu olduğunu sanmıyorum. JavaScript bile ya da çalıştırmak gerekir.

Zaten JavaScript ile toplam satır sayısını alabilirsiniz. Ayrıca, bu "sihirli sayı" 8 nereden geldiğini biraz kafam karıştı.

Burada belirtilen daha da javascript dosyası daha bütün bir yığın olmadığı sürece de gerekli tüm neden, ben gerçekten görmüyorum.

Evet, tablo içeriği çıktısı php? Bu yüzden başlangıçta kontrol / denetlenmeyen bu onay kutularını ayardır php? Peki neden php işaretli ayarlamak için kaç sayısını yapamaz ve gerekli numarası (8?) Işaretli ise, aynı zamanda engelli bunları ayarlamak?

Sen gibi gizli bir alanda değişkeni saklamak olabilir

<input type="hidden" id="total" value="<?=$total?>" />

ve daha sonra javascript ile değer çekin:

var total = document.getElementById("total").value

Aklımın üstüne bunu yapmak için birkaç yol vardır.

php echo

William sadece yankı kullanarak dediği gibi. Bu sanırım en kolay yoludur. Kodunuzda sadece bu geçmiş zaman ve platform bağımsız değilse ben de bu biraz kirli görünüyor düşünüyorum

pass json from url

Hemen hemen tüm dilleri / kod çözme json kodlamak imkanınız var. php sadece json_encode ve json_decode hangi manipüle olabilir javascript PHP kodu dönüştüren arayarak bunu yapabilirdi

With Jquery.getJson() you could get javascript back and use it. With jsonp you could even work cross domain.