<?php $var2='Hello'; ?>
<script type="text/javascript">
var vp2 = '<?php print $var2; ?>' ;
document.write(vp2) ;
</script>
e funziona;
Volevo però usare soluzioni alternative anche poer capire come si integra
js con php:
1) var vp2 = '<?php $var2; ?>' ;
perchè così non funziona ? (vuole per forza print o echo)
2) spostare questa riga <?php $var2='Hello'; ?>
dal File.php ad un altro file.js
essendo codice php credo l'unica soluzione sia creare sempre un file1.php
ma con header in javascript che sarà poi richiamato dal File0.php:
è fattibile e come?
(nb non voglio usare include o similari in quanto volevo testare
il richiamo su un file php di un file js o sua simulazione)
> ho un File0.php con:
>
> <?php $var2='Hello'; ?>
>
> <script type="text/javascript">
> var vp2 = '<?php print $var2; ?>' ;
> document.write(vp2) ;
> </script>
>
> e funziona;
Beh, si`. :)
> Volevo però usare soluzioni alternative anche poer capire come si
> integra js con php:
Non si integra. Uno e` lato server, uno lato client.
Puoi generare javascript dinamicamente tramite PHP.
> 1) var vp2 = '<?php $var2; ?>' ;
> perchè così non funziona ? (vuole per forza print o echo)
Perche` altrimenti php coma fa a capire cosa vuoi fare se non gli dai il
comando (print o echo)?
> 2) spostare questa riga <?php $var2='Hello'; ?> dal File.php ad un
> altro file.js
Devi costringere il server a trattare i file .js come se fossero PHP. Non
e` impossibile, ma e` sconsigliato perche` appesantisce anche i file js
non dinamici.
> essendo codice php credo l'unica soluzione sia creare sempre un
> file1.php ma con header in javascript che sarà poi richiamato dal
> File0.php: è fattibile e come?
> (nb non voglio usare include o similari in quanto volevo testare il
> richiamo su un file php di un file js o sua simulazione)
Non ho capito cosa vuoi fare...
Bye.
un dato da php a js lo passi o con il get
(window.location)
o con un
var pluto='<?=$gatto;?>';
oppure passi i dati al js con xhr / json
ti incollo un .php
<?
$dati = array();
echo "[";
$sql="SELECT * FROM ".$table['rass']."testa ORDER BY tx_nome ASC;";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)){
$dati[] = "{\"a\": ".$row['TX'].",\"b\": \"".$row['tx_nome']."\"}";
}
echo implode(",",$dati);
echo "]";
?>
<script type="text/javascript" src="./funzioni/js/xhr.js"></script>
<script type="text/javascript">
function subargo(ob){
var pos = '&ac=' + ob.value;
XHR.send({
url : 'scarica.php?<?="adm=".$mo[0]."&win=12";?>',
type : 'POST',
async : true,
data : pos,
content_type : 'application/x-www-form-urlencoded',
success : function(text) {
// alert(text);
var oj = eval(text);
document.forms[0].sa.length = 0;
// alert(oj.length);
for(i=0; i<oj.length; i++){
newoption = new Option(oj[i].b,oj[i].a,false,true);
document.forms[0].sa.options[i] = newoption;
}
},
error : function(text){
alert(text);
}
});
}
xhr.js:
var XHR = {
/**#@+
* @method
*/
/**
* Sends a XMLHTTPRequest.
* Consult the Wiki for details on what settings this method takes.
*
* @param {Object} o Object will target URL, callbacks and other info
needed to make the request.
*/
/**
http://tinymce.moxiecode.com/ for copyright (il codice originale e'
stato modificato)
*/
send : function(o) {
var x, t, w = window, c = 0;
// Default settings
o.scope = o.scope || this;
o.success_scope = o.success_scope || o.scope;
o.error_scope = o.error_scope || o.scope;
o.async = o.async === false ? false : true;
o.data = o.data || '';
function get(s) {
x = 0;
try {
x = new ActiveXObject(s);
} catch (ex) {
}
return x;
};
x = w.XMLHttpRequest ? new XMLHttpRequest() : get('Microsoft.XMLHTTP')
|| get('Msxml2.XMLHTTP');
if (x) {
if (x.overrideMimeType)
x.overrideMimeType(o.content_type);
x.open(o.type || (o.data ? 'POST' : 'GET'), o.url, o.async);
if (o.content_type)
x.setRequestHeader('Content-Type', o.content_type);
x.send(o.data);
// Wait for response, onReadyStateChange can not be used since it
leaks memory in IE
t = w.setInterval(function() {
if (x.readyState == 4 || c++ > 10000) {
w.clearInterval(t);
if (o.success && c < 10000 && x.status == 200)
o.success.call(o.success_scope, '' + x.responseText, x, o);
else if (o.error)
o.error.call(o.error_scope, c > 10000 ? 'TIMED_OUT' : 'GENERAL',
x, o);
x = null;
}
}, 10);
}
/**#@-*/
}
}
forse mi sfugge il concetto che ho sempre inteso il print come una stampata
a video per l'utente finale; per cui mi č sembrato strano che dovendosi
scambiare i dati da php a js fosse necessario questo passaggio tra i 2
linguaggi;
inoltre scrivere var pippo='<?php print $pluto; ?>';
č la stesa cosa di var pippo='<?=$pluto?>'; dai test mi sembrano identici
>> 2) spostare questa riga <?php $var2='Hello'; ?> dal File.php ad un
>> altro file.js
>
> Devi costringere il server a trattare i file .js come se fossero PHP. Non
> e` impossibile, ma e` sconsigliato perche` appesantisce anche i file js
> non dinamici.
forse intendevi l'inverso, oppure altro modo con il php (senza quindi agire
su apache) fare in modo che un file php sia come un file .js ?
io ho fatto cosě:
da un File0.php con inizio il
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ....
gli faccio richiamare un file1.php (un php forzato ad essere js)
con all'inizio <?php header('Content-type: text/javascript'); ?>
il problema č che se ho una variabile php $var04 esterna a tutti e 2 i
file, quando la uso sul File0 , tutto ok; mentre messa sul file1 risulta
non definita
č come se il file con l'heder content-type .. disturbi o non accetti
l'inserimento della variabile;
questa in realtà è identica all'uso del print o echo?
dai tst ho lo tesso risultato
> oppure passi i dati al js con xhr / json
qui devo vedere; ma in quali casi si usa ?
in risposta all'altro post ho meglio definito il quesito
ringrazio comunque entrambi e il ng
> forse mi sfugge il concetto che ho sempre inteso il print come una
> stampata a video per l'utente finale; per cui mi è sembrato strano che
> dovendosi scambiare i dati da php a js fosse necessario questo passaggio
> tra i 2 linguaggi;
Allora, se vuoi semplificare, considera il javascript come qualcosa che va
a video dell'utente finale. :)
Il flusso e` questo:
browser -> richiede al server la pagina 1.php
server -> legge 1.php, si accorge che e` .php e la passa a php
php -> legge 1.php, esegue i comandi che ci sono, passa l'output al server
server -> legge da php l'output, lo manda al browser
browser -> visualizza l'output. si accorge che c'e` un pezzo <script
type="text/javascript", lo passa all'interprete javascript
javascript -> esegue sul browser il codice js
Come vedi, PHP e JS non si parlano mai direttamente. Da PHP puoi creare
dinamicamente codice javascript, ma PHP non ha idea di cosa sia, per lui
e` tutto testo. E nemmeno il server sa cos'e`, anche per lui e` puro testo.
> inoltre scrivere var pippo='<?php print $pluto; ?>'; è la stesa cosa di
> var pippo='<?=$pluto?>'; dai test mi sembrano identici
In PHP <?= e` un "alias" per <?php print
>> Devi costringere il server a trattare i file .js come se fossero PHP.
>> Non e` impossibile, ma e` sconsigliato perche` appesantisce anche i
>> file js non dinamici.
> forse intendevi l'inverso, oppure altro modo con il php (senza quindi
> agire su apache) fare in modo che un file php sia come un file .js ? io
> ho fatto così:
No, vedi sopra.
Il server elabora PHP solo se sa che deve farlo. Quindi se gli dici "i
file con estensione .js sono file PHP", lui richiama PHP, altrimenti no, e
passa il file direttamente al browser.
Devi cambiare la tua prospettiva :)
> da un File0.php con inizio il
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ....
>
> gli faccio richiamare un file1.php (un php forzato ad essere js) con
> all'inizio <?php header('Content-type: text/javascript'); ?>
>
> il problema è che se ho una variabile php $var04 esterna a tutti e 2 i
> file, quando la uso sul File0 , tutto ok; mentre messa sul file1 risulta
> non definita
Dipende tutto da cosa intendi per "faccio richiamare".
Posta il codice, anche se credo sia meglio metterlo in it.comp.www.php,
piuttosto che qui.
Bye.
quando voi qualcosa dal server
tipo anche se banale
vuoi caricare uno sfondo ?
scegli:
xhr lista sfondi
UTENTE SCEGLIE
immgine di sfondo
in parica la prima chimata la fai con il
body onload = caricalevariabili_da_xhr()
<?= e' echo
print non e' echo sono diverse echo non supporta %
ed e' piu veloce
>
> in risposta all'altro post ho meglio definito il quesito
>
> ringrazio comunque entrambi e il ng
--
Voi un applicazione web per la tua azienda ?
non riesci mai a trovare quello che sai di avere
e non ricordi chi lo ha fatto
g u f o _ r o s s o CHIOCCIOLA libero.it