2014-05-10 18 views
5

To jest pytanie teoretyczne. Moje pytanie dotyczy tego, czy funkcja lub skrypt jQuery może być napisany wewnątrz funkcji PHP. E.g.JavaScript jQuery wewnątrz funkcji PHP

<?php function phpfunc(){ 
$a=10; ?> 

<script>var a ='<?php $a ?>'</SCRIPT> <?php } ?> 

Czy to możliwe i legalne?

+1

tak, to zadziała dobrze. Po prostu echo '$ a' zamiast nic z tym nie robić. – Bryan

+0

To zadziała. I możliwe – Babu

+0

@ user3187838 Odpowiedź wybrana nie odpowiada na twoje pytanie, Edytuj pytanie lub przejrzyj odpowiedzi. – Patrick

Odpowiedz

3

Tak, to jest w porządku, aby to zrobić. Nie, to chyba nie jest dobry pomysł. Ale nic tak naprawdę nie powstrzymuje cię.

Pamiętaj, że jeśli Twoja zmienna ma wartość ', zostaniesz popsuty.

Tak więc, gdy chcesz przekazać zmienną z PHP do JavaScript, należy użyć json_encode:

<script type="text/javascript"> 
    alert(<?php echo json_encode($something); ?>); 
</script> 

Zauważ, że nie ma żadnych ofert w ramach JavaScript - json_encode doda cytaty razie potrzeby. To może być użyte do przekazania prawie każdej zmiennej.

1

Krótka odpowiedź to nie (edycja: tak).

javascript jest wykonywany na kliencie i tylko na kliencie.

Możesz jednak wyświetlać javascript dla klienta.

Więc coś takiego:

$JSfunction = "<script>alert('This is working')</script>"; 

może być powtórzone na stronę wykonując echo $JSfunction;

edit:

Ponieważ nie wspomniał, gdzie znajduje się ta funkcja, Przypuszczałem cię oznaczało funkcję PHP po stronie serwera.

Aby było jasne, jeśli jest napisane na stronie html, jest całkowicie w porządku i można to zrobić.

pełna odpowiedź

<? function phpfunc(){ 
$a=10; ?> 
<script>var a ='<?php echo $a ?>'</SCRIPT> <?php } ?> 

<?php phpfunc() ?> 
<script>console.log(a);</script> 

należy powtórzyć, że $ a

+0

Ta krótka odpowiedź brzmi "tak". Jego pytanie brzmi: "czy funkcja jquery lub skrypt może być napisany wewnątrz funkcji php" i na pewno może. – Ohgodwhy

+0

@ohgodwhy Zmieniono moją odpowiedź, założyłem, że pytanie zostało zadane na kodzie servera. – Patrick

+0

_Jeśli jest on napisany na html _.... php na stronie html, jak to możliwe ... – Jai

4

Tak. Jest to również możliwe i prawne. zwykle używamy tego samego, gdy wymagamy ustawienia wartości po stronie serwera po stronie klienta w środowisku wykonawczym.

Mam nadzieję, że to odpowiada na twoje zapytanie.

Wielkie dzięki!

3

Kiedy kod PHP jest interpretowany przez sever pisze coś takiego:

<?php 

function foo() 
    { 

     <script type=text/javascript> ... </script> 

    } 

?> 

Jako część kodu w <?php ?> jest interpretowany jako php i ciąg wewnątrz doesnt funkcyjnego reprezentuje żadnej funkcji php

Ty może wyświetlać kod javascript (lub dowolną treść dokumentu HTML) za pomocą kodu php:

<?php 

function foo(){ 

echo "<script type=text/javascript> alert('it works!)'; </script>"; 


} ?> 

, więc po uruchomieniu fu nction, możesz dodać javascript do dokumentu poprzez jego echo i dlatego go uruchom.

Można również używać zmiennych php echo zmiennych javascript jak:

<?php 

function foo(){ 

echo "<script type=text/javascript> alert('{$phpVariable}'); </script>"; 


} ?> 

lub

<?php 

function foo(){ 

echo "<script type=text/javascript> var variableFromPHP = {$phpVariable}; </script>"; 


} ?> 
+0

Podoba mi się sposób, w jaki robi to lepiej. Dlaczego echo, kiedy można po prostu wydrukować znacznik jak w oryginalnym pytaniu? – Bryan

+0

OP nie jest jasne, gdzie kod jest napisany, założyłem, że kod jest również zapisany na serwerze. kod OP przyjęto po stronie klienta. – Patrick

0

Tak, możesz go używać jak na normalnej stronie HTML. Użyj skryptu to wewnątrz echa wewnątrz skryptu php.

Możesz normalnie używać go poza skryptem php. Użyj tagu kontenera dla tego samego na stronie php.

Mam nadzieję, że to pomogłoby.

+0

Witamy w Stack Overflow! To pytanie ma już wiele odpowiedzi (z których jedna jest akceptowana), a więc najprawdopodobniej nie potrzebuje nowego, chyba że nowa odpowiedź dostarcza nowych informacji. – ollpu

Powiązane problemy