UP
Originariamente inviato da andbaz
Il discorso è questo, l'errore è di sintassi, no? Tutto qui, allora.
...
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Potevi anche evitare di quotare, no?
Se me lo sai risolvere il problema, bene, altrimenti niente![]()
andbaz il problema è principalmente quello che tu hai solo inserito un frammento di codice dove in una variabile si ipotizza tu voglia inserire del codice sorgente (ad esempio per poi stamparlo in una guida...) però senza dire nulla di cosa vuoi fare tu.
Detto questo noi possiamo solo limitarci a dirti che l'errore sta proprio nella sintassi, ovvero nel come inserire il codice nella variabile.
Le questioni, per le poche informazioni che ci hai dato, sono:
vuoi che nella variabile ci sia il codice esattamente come tu lo leggi?
In questo caso devi fare ricorso all'escape:
se invece al posto delle variabili vuoi che venga memorizzato il loro contenuto devi utilizzarela concatenazione...Codice PHP:
$tip = "global \$id;
\$sdb;
\$sql = \"SELECT * FROM stato WHERE ID=\$id\";
\$query = mysql_query(\$sql);
\$nrw = mysql_num_rows(\$query);
while (\$nrw = mysql_fetch_assoc(\$query)) {
\$piu = \$nrw['PIU'];
\$nom = \$nrw['NOME'];
\$cog = \$nrw['COGNOME'];
if (\$piu>0) {
echo \$nom.' '.\$cog.'
';
}
}
";
Questo è quello che possiamo dirti con le informazioni che ci hai dato, esattamente come succede quando qualcuno ci contatta per una consulenza... più informazioni si hanno più mirata sarà la consulenza... così a grandi linee ci possiamo limitare solo a quanto ti abbiamo già detto.Codice PHP:
$tip = "global ".$id;
$tip .= $sdb;
$tip .= "\$sql = \"SELECT * FROM stato WHERE ID=".$id."\"";
$tip .= "\$query = mysql_query(".$sql.")";
$tip .= "\$nrw = mysql_num_rows(".$query.")";
$tip .= "while (\$nrw = mysql_fetch_assoc(".$query.")) { ";
$tip .= "\$piu = ". $nrw['PIU'];
$tip .= "\$nom = ". $nrw['NOME'];
$tip .= "\$cog = ". $nrw['COGNOME'];
$tip .= "if (".$piu." > 0) {";
$tip .= "echo ".$nom." ".$cog."
";
$tip .= "}";
$tip .= "}";
Sia io che Portabile84 abbiamo chiesto ulteriori informazioni su ciò che devi effettivamente fare, ma sembra che tu stia ignorando le nostre richieste.Originariamente inviato da andbaz
Potevi anche evitare di quotare, no?
Se me lo sai risolvere il problema, bene, altrimenti niente![]()
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Allora, parto da 0, ho questo script che mi permette in poche parole di far comparire a fianco del mouse un div e questo div inseguirà il mouse finché si ritroverà al di sopra di questo input, fuori scomparirà. Io vorrei che quando andassi su questo input mi comparisse appunto il contenuto di una variabile, una funzione, il problema è che mi da il seguente errore nel ciclo del while della variabile ($tip)
codice:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\EASYPHP\www\stato.php on line 148Questo è l'input:Codice PHP:
<script>
var oTooltip = new (function() {
var nOverX, nOverY, nLeftPos, nTopPos, oNode, bOff = true;
this.follow = function (oMsEvnt1) {
if (bOff) { return; }
if (!oMsEvnt1) { oMsEvnt1 = window.event; }
var nMoveX = oMsEvnt1.clientX, nMoveY = oMsEvnt1.clientY;
nLeftPos += nMoveX - nOverX; nTopPos += nMoveY - nOverY;
oNode.style.left = nLeftPos + "px";
oNode.style.top = nTopPos + "px";
nOverX = nMoveX; nOverY = nMoveY;
};
this.remove = function () {
if (bOff) { return; }
bOff = true; document.body.removeChild(oNode);
};
this.append = function (oMsEvnt2, sTxtContent) {
if (!oMsEvnt2) { oMsEvnt2 = window.event; }
oNode.innerHTML = sTxtContent;
if (bOff) { document.body.appendChild(oNode); bOff = false; }
var nScrollX = document.documentElement.scrollLeft || document.body.scrollLeft, nScrollY = document.documentElement.scrollTop || document.body.scrollTop, nWidth = oNode.offsetWidth, nHeight = oNode.offsetHeight;
nOverX = oMsEvnt2.clientX; nOverY = oMsEvnt2.clientY;
nLeftPos = document.body.offsetWidth - nOverX - nScrollX > nWidth ? nOverX + nScrollX + 10 : document.body.offsetWidth - nWidth + 16;
nTopPos = nOverY - nHeight > 6 ? nOverY + nScrollY - nHeight - 7 : nOverY + nScrollY + 20;
oNode.style.left = nLeftPos + "px";
oNode.style.top = nTopPos + "px";
};
this.init = function() {
oNode = document.createElement("div");
oNode.setAttribute("class", "tooltip");
oNode.style.position = "absolute";
};
})();
</script>
Questa è la variabile:Codice PHP:
(...)
$stato ="<form method='POST' id='box15'>
<input type='submit' name='piu' value='+' id='piu' class='btn2'
onmouseout=\"this.className = 'btn2'; oTooltip.remove();\"
onmouseover=\"this.className = 'btn3'; oTooltip.append(event, '$tip');\" /*QUI*/
onmousemove=\"oTooltip.follow(event);\"/>
</form>
";
(...)
CHIEDO SCUSA, CREDEVO CHE IL PROBLEMA FOSSE QUALCOSA DI VELOCE E BANALE.Codice PHP:
$tip = "
$sdb;
$sql = 'SELECT * FROM stato WHERE ID=$id';
$query = mysql_query($sql);
$nrw = mysql_num_rows($query);
while ($nrw = mysql_fetch_assoc($query)) {
$piu = $nrw['PIU'];
$nom = $nrw['NOME'];
$cog = $nrw['COGNOME'];
echo $nom.' '.$cog.'
';
}
";
![]()
HO NOTATO UNA COSA, se mettessi al posto della variabile $tip nell'evento dell'input un testo come x esempio 'ciao' risulterebbe sempre lo stesso errore, quindi presumo che l'errore si limiti alla variabile $tip, e non al resto.
Perchè se inserissi 'ciao' e cancellassi la variabile funzionerebbe come dovrebbe funzionare!
Strano, non capisco il perchè.
Oppure non risulta possibile inserire una variabile all'interno dei due apici nell'evento del mouse riferito all'input.
Dove sbaglio? GRAZIE