Nasıl jQuery içine $ değişken eklemek yok

3 Cevap php

JQuery ile Drupal çalışıyveyaum. Nasıl bir etiketi içine bir php $ değişken eklemek yok.

$(document).ready(function(){
    $("#comment-delete-<?php print $variable ?>").click(function(){
        $("div.comment-<?php print $variable ?> span.body").replaceWith("new text");
    });
})

veya

$(document).ready(function(){
    $("#comment-delete-". $variable).click(function(){
        $("div.comment-". $variable ." span.body").replaceWith("new text");
    });
})

A few things to clearify. I'm running in Drupal, so the full code looks like this:

<?php
drupal_add_js (
    '$(document).ready(function(){
        $("#comment-delete-"' print $comment->cid; ').click(function(){
            $("div.comment-"' print $comment->cid; '" span.body").replaceWith("<span style=\'colveya: grey;\'>Please wait...</span>");
        });
    })',
'inline');
?>

but it's still not wveyaking.

Update: I tried the following, but it's still not wveyaking

<?php
$testing = "42";
drupal_add_js (
    '$(document).ready(function(){
        $("#comment-delete-"'. $testing .').click(function(){
            $("div.comment-"'. $testing .'" span.body").replaceWith("<span style=\'colveya: grey;\'>Please wait...</span>");
        });
    })',
'inline');
?>

If I use the number "42" instead of the variable, it wveyaks, but not when using the variable... weird.

3 Cevap

Yorumlarınız dayanarak:

<?php 
    drupal_add_js ('
        $(document).ready (function() { 
            $("#comment-delete-' . $variable . '").click (function() { 
                $("div.comment-' . $variable . ' span.body").replaceWith ("new text"); 
            }); 
        })
    ','inline');
?>

Sen yerine print it-ing, $variable bitiştirmek gerekir

$(document).ready(function(){
    $("#comment-delete-<?php print $variable ?>").click(function(){
        $("div.comment-<?php print $variable ?> span.body").replaceWith("new text");
    });
})

PHP sayfa yükler ÖNCE yürütülen olduğundan, ikinci yöntem işe yaramaz. Aslında, İkinci biri farklı zamanlarda çalıştırmak iki farklı dil, demek ... hala çalışmaz karıştırır.


Bu ne olduğunu.

Browser Requests Page

PHP Creates the HTML Page
PHP searches the file for <?php ?> tags, and runs the code inside them:

$(document).ready(function(){
    $("#comment-delete-<?php print $variable ?>").click(function(){
        $("div.comment-<?php print $variable ?> span.body").replaceWith("new text");
    });
})

The above example would create this after being parsed:

$(document).ready(function(){
    $("#comment-delete-mytag").click(function(){
        $("div.comment-mytag span.body").replaceWith("new text");
    });
})

Server Sends Page to Browser

Browser reads the page

Javascript Runs:

$(document).ready(function(){
    $("#comment-delete-mytag").click(function(){
        $("div.comment-mytag span.body").replaceWith("new text");
    });
})

Eğer fark ederseniz, PHP sadece web sayfası tarayıcıya gönderilecek oluşturur. Yani yapmak için PHP kullanmak tüm Javascript Kodunu oluşturmaktır. PHP çalışırken, aslında herhangi bir JavaScript sözdizimi kuralları takip etmek zorunda kalmazsınız. Tarayıcıya aldığında sadece JavaScript sözdizimi doğru yapmanız gerekir. AKA Bu sürece sayfa tarayıcıya aldığında, geçerli Javascript gibi, istediğiniz tüm <?php ?>, etiket ekleyebilirsiniz.


Eğer belirtilen Yorumlarınız gibi, bir fonksiyon içine kodu geçiyoruz, size ikinci bir örnek doğru olurdu bu durumda tırnak kapsüllü bir dize, oluşturmak olacaktır:

drupal_add_js (
    '$(document).ready(function(){
        $("#comment-delete-'. $variable . ').click(function(){
            $("div.comment-'. $variable . ' span.body").replaceWith("<span   style=\'color: grey;\'>Please wait...</span>");
        });
    })',
'inline');

[Değiştir] Pardon, hiç sakıncası, ben sadece kesin cevabı zaten ben sadece onu takip için yeterince dikkatli değildi, nakledilmiş olduğunu fark ..