[gdrcd 5.x] Problemi con Dialog
02/06/2012 20:53:56
leoblacksoul ha scritto: Stai mischiando Javascript e PHP. Con cosa scrivi codice? Dovresti usare un editor che ti evidenzia in modo diverso i vari linguaggi di programmazione, così ti accorgi subito quando stai cercando di scrivere PHP dentro a Javascript.
Uno script PHP inizia sempre con <?php e finisce sempre con ?>
Il tuo codice diventa:
$('#finestra').load('../scheda.php?pg=<?php echo gdrcd_filter('out',$record['nome']); ?>');
PHP può essere usato anche per generare javascript ;)
al che mi dice "non è stato indicato il nome del pg oppure il pg non esiste" ç_ç"
è che non capisco, visto che se, invece, metto
$('#finestra').load('../scheda.php?pg=<?php echo $_SESSION['login'] ?>');
la mia scheda, in popup, la apre correttamente <.<"
02/06/2012 22:42:06 e modificato da leoblacksoul il 02/06/2012 22:46:38
sicura che nella pagina presenti estesi ci sia una variabile che si chiama $record['nome']? E sei sicura che nel punto dove c'è lo script javascript quella variabile esista?
02/06/2012 22:45:31
leoblacksoul ha scritto: sicura che nella pagina presenti estesi ci sia una variabile che si chiama $record['nome']?
sì sì.
Tanto per dire, nella pagina presenti estesi il nome dei pg, nella lista, è stampato così
echo '<td class="casella_presentiest""><span class="chat_name"><a href="#" id="open" class="link_sheet"'. $online_state .'>'.gdrcd_filter('out',$record['nome']);
if (empty($record['cognome'])===FALSE){echo ' '.gdrcd_filter('out',$record['cognome']);}
echo '</a></span></td>';
E il nome, nella lista, viene correttamente stampato.
03/06/2012 00:48:31
giusto, ma in che punto sta il tuo codice che apre il dialog rispetto a quella stampa che mi hai postato?
03/06/2012 00:59:33 e modificato da irenes il 03/06/2012 01:00:29
leoblacksoul ha scritto: giusto, ma in che punto sta il tuo codice che apre il dialog rispetto a quella stampa che mi hai postato?
La dialog viene aperto in quello stesso punto che ti ho postato ( <a href="#" id="open" ). cliccando il nome dovrebbe aprirsi la pop up.
la funzione JS
<div id="finestra"></div>
<script type="text/javascript">
$(function(){
$('#finestra').dialog({
width:750,
height: 575,
'autoOpen':false,
'open':function(){
$('#finestra').load('../scheda.php?pg=<?php echo gdrcd_filter('out',$record['nome']); ?>');
}
})
$('a#open').click(function(){
$('#finestra').dialog("open");
})
});
</script>
è alla fine della pagina, invece.
Il punto è che, lì, la variabile non esiste più, dici? :s
11/06/2012 11:32:30
il problema temo proprio che sia che, a quel punto, non mi rileva la variabile. temo di star cadendo nell'errore di considerare equivalenti dati php e JS. uhm >.<
però allora non capisco una cosa: perchè a dirgli di stampare session['login'] la pop up, con la MIA scheda la apre correttamente? mumble mumble...
11/06/2012 12:20:14
$record['nome'] è una variabile che è valida solo ed esclusivamente dentro al ciclo while che stampa la tabella degli utenti. Non puoi usarla al di fuori dato che il suo valore sarà null.
NON spostare il codice javascript dentro al ciclo while, non faresti altro che creare inutili duplicazioni di codice che potrebbero anche andare in conflitto tra di loro.
Il tuo codice javascript deve venire parametrizzato.
Se vuoi eseguire le stesso codice su una lista di utenti allora la funzione che gestisce l'apertura del dialog deve diventare indipendente dall'id dell'utente, ricevendolo come parametro solo al momento del click sul link.
<div id="finestra"></div>
<script type="text/javascript">
$(function(){
$('#finestra').dialog({
width:750,
height: 575,
'autoOpen':false,
'open':function(event,ui){
pg=$(event.currentTarget).data('pg');
$('#finestra').load('../scheda.php?pg='+pg);
}
})
$('a.open').click(function(){
$('#finestra').dialog("open");
})
});
</script>
Modifica così il comando PHP che genera i nomi nella pagina:
echo '<td class="casella_presentiest""><span class="chat_name"><a href="#" class="open link_sheet"'. $online_state .' data-pg="'.gdrcd_filter('out',$record['nome']).'">'.gdrcd_filter('out',$record['nome']);
if (empty($record['cognome'])===FALSE){echo ' '.gdrcd_filter('out',$record['cognome']);}
echo '</a></span></td>';
11/06/2012 14:23:47
Grazie mille come sempre, leo!
purtroppo anche così spunta sempre fuori il maledetto
"Non e' stato specificato il none del PG oppure il PG non esiste." ç_ç
11/06/2012 14:40:45
event.currentTarget potrebbe essere indefinito....
prova a sostituirlo con event.target
se comunque non va devo provarlo a mano
12/06/2012 19:21:36
leoblacksoul ha scritto: event.currentTarget potrebbe essere indefinito....
prova a sostituirlo con event.target
se comunque non va devo provarlo a mano
nada, non funzia ç_ç" sempre personaggio non riconosciuto.... uff, <.<"
Discussione seguita da
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
The Coven ↗
Raja Dunia ↗
CRSED: F.O.A.D. ↗
Crossout ↗
Wuthering Waves ↗
World of Tanks ↗
AlterEgo ↗