Czy mimo to mogę użyć zmiennej php w skrypcie JQuery?Użyj zmiennej PHP w JQuery
Przykład:
- PHP zmienna:
$sr2
- Fragment skryptu JQuery (o zmiennej):
$('#a2_bottom_$sr2')
Jak mogę to zrobić tak zmienna jest ważny w tym JQuery części?
Dzięki
Czy mimo to mogę użyć zmiennej php w skrypcie JQuery?Użyj zmiennej PHP w JQuery
Przykład:
$sr2
$('#a2_bottom_$sr2')
Jak mogę to zrobić tak zmienna jest ważny w tym JQuery części?
Dzięki
To, co możesz zrobić, to użyć swojego PHP, aby wygenerować kod do zainicjowania Javy Zmienna skryptowa.
<script type="text/javascript">
<?php
$phpVar = "foo";
echo "var phpVariable = '{$phpVar}';";
?>
</script>
Gdy kod PHP jest analizowany, a HTML jest wysyłane do użytkownika - wszyscy widzą to efekt echa PHP -
<script type="text/javascript">
var phpVariable = 'foo';
</script>
Teraz twój phpVariable
jest dostępna dla JavaScript ! Więc go używać jak ty będzie w każdym innym przypadku -
$("div."+phpVariable);
To pobierze nam żadnego elementu <div>
z klasą foo
-
<div class="foo"></div>
Jest naprawdę stary, ale teraz dostaję błąd javascript w kodzie "Uncaught SyntaxError: nieoczekiwany token <" –
@IrtzaShahan - oznacza to, że wystąpił błąd podczas wstawiania zmiennej do javascript. Upewnij się, że zawijasz zmienną php w cudzysłów, aby efekt końcowy wyświetlany na stronie wyglądał jak normalny javascript. Pamiętaj, że przeglądarka nadal musi czytać i używać wartości javascript, które stworzyłeś. – Lix
PHP działa na serwerze, jQuery działa na kliencie. Jeśli chcesz, aby zmienna PHP była dostępna dla jquery (a przez to jako podstawowego silnika javascript), musisz przesłać wartość zmiennej w momencie wyprowadzania strony na serwer, np.
<script type="text/javascript">
var my_php_var = <?php echo json_encode($the_php_var) ?>;
</script>
lub pobrać wartość przez wywołanie AJAX, co oznacza, że zasadniczo tworzysz serwis internetowy.
+1 dla json_encode; Myślę, że kluczowe jest to, że jeśli zamierzamy omówić drukowanie zmiennej jako kodu JS, który omawiamy, jak uniknąć jej łamania :) – Kato
Zakładając, że jQuery jest w tym samym pliku:
... $('#a2_bottom_<?php echo $sr2 ?>') ...
działa dobrze ... chyba że '$ sr2' zawiera cudzysłów, przestrzeń itp. – Spudley
jest częścią identyfikatora, ale i tak nie może zawierać tych znaków. –
dokładnie; jeśli zmienna '$ sr2' zawiera którykolwiek z tych znaków, niezależnie od tego, czy przez przypadek, czy przez celowy atak hackowy, sprawi, że linia kodu jQuery będzie nieważna. Przynajmniej użyj 'json_encode()', aby upewnić się, że jest poprawna składnia, ale w tym przypadku może być wymagana dalsza walidacja, na przykład spacja, itp. – Spudley
Mogłeś wyjście go jako część strony w tagu skrypt ... czyli
<script type="text/javascript">
<?php
echo "var sr2 = \"" . $sr2 . "\"";
?>
</script>
Następnie linia jQuery byłoby w stanie uzyskać do niego dostęp:
$('#a2_bottom_' + sr2)
dla bezpieczeństwa, użyj 'json_encode()', gdy echo zmiennej do twojego javascript, ale zasadniczo jest to właściwa odpowiedź. – Spudley
Gdzie jest Twój kod jQuery znajduje? Wewnątrz pliku PHP lub w osobnym pliku .js? –
Znajduje się w tym samym pliku, co PHP –