Ok, ora inizio a vederci chiaro. Appena sviluppo qualcosa riporto il risultato.
Per il resto sei stato gentilissimo!
Ok, ora inizio a vederci chiaro. Appena sviluppo qualcosa riporto il risultato.
Per il resto sei stato gentilissimo!
Fammi capire. Se nel file php viene stampato qualcosa, il js reagisce.
Ad esempio se viene stampato qualcosa, la variabile risposta è uguale a 1?
Quindi con un ciclo if-else impongo due alert in questo modo:
if (risposta == '1')
{
alert(E' stato stampato qualcosa);
}
else
{
alert (Non è stato stampato nulla);
}
Può andare?
Grazie per la risposta, ma alla fine sono riuscito a risolvere per la prima.
Invece per quanto riguarda la seconda richiesta, ho solo qualche bozza che non mi da nessun risultato. Mi servirebbe capire come riesco a prelevare un risultato dal php e far reagire ajax in un modo.
Ad esempio nel file php ho una query e ottengo il risultato 1. Ecco è possibile che ajax riesca a capire se il risultato è uno o diverso da uno?
Ecco quello che ho pensato di sviluppare. Ho una funzione chiamata Aggiorna: ```
function Aggiorna() {
var r = Math.random();
myRequest = CreateXmlHttpReq(myHandlerCCP);
myRequest.open("GET","aggiorna.php?rand="+r);
myRequest.send(null);
}
function myHandlerCCP()
{
if (myRequest.readyState == 4 && myRequest.status == 200)
{
risposta = myRequest.responseText;
var Messaggio = document.getElementById("DivAggiorna");
if (risposta == '1')
{
"Risposta positiva" (devo ancora capire che inserire qui)
}
else
{
"Risposta negativa" (come sopra)
}
}
}
Spero che il titolo non sia fuorviante. Ho creato un codice in ajax che richiama una pagina in php, che genera numeri casuali. Fin qui nessun problema.
Il fatto è che il codice continua a stampare numeri casuali all'interno del div segnalato ad ajax ogni 5 secondi. La mia intenzione però è quella di evitare che i numeri vengano stampati uno dietro l'altro, ma semplicemente che ogni 5 secondi quello vecchio venga sostituito dal nuovo numero casuale.
Avete delle dritte da darmi? ci ho sbattuto la testa ma non ho raggiunto risultati.
Avevo pensato in caso che a seconda del risultato stampato con echo nel codice php, ajax reagisca in un modo. Ma non sono riuscito a prelevare il risultato con ajax.
In questo caso?
Grazie!
function myHandlerCCP() {
if (myRequest.readyState == 4 && myRequest.status == 200) {
e = document.getElementById("Crea");
e.innerHTML = myRequest.responseText;
}
}
function CreazioneUtente() {
var Nome = document.creaUtente.Nome.value;
var Cognome = document.creaUtente.Cognome.value;
var Sesso = document.creaUtente.Sesso.value;
var r = Math.random();
myRequest = CreateXmlHttpReq(myHandlerCCP);
myRequest.open("GET","creaUtente.php?Nome="+escape(Nome)+"&Cognome="+escape(Cognome)+"&Sesso="+escape(Sesso)+"&Rand="+r);
myRequest.send(null);
Questa è la parte finale del codice che richiama ajax. Prenderà le variabili e scriverà i risultati nel div Crea.
[HTML]<form name="creaUtente" action=" " method="post">
<table width="100%" cellspacing="20" border="1">
<tr align="left">
<td ><strong>Nome:</strong></td>
<td ><input type="text" name="Nome" style="width:100%" onkeyup="javascript:CreazioneUtente();" /></td>
<td id="Crea" rowspan="6" width="70%" valign="top" style="padding-top:5px;"> </td>
</tr>
<tr align="left">
<td><strong>Cognome:</strong></td>
<td><input type="text" name="Cognome" style="width:100%" onkeyup="javascript:CreazioneUtente();" /></td>
</tr><br>[/HTML]
Questa è una parte del form. In questo modo i risultati vengono stampati in un cella a destra dei campi. La mia idea è quella di inserirli sotto ogni campo e fin qui nessun problema, sarei in grado. Però quando vado a compilare i campi in ogni div si ripetono tutti i risultati richiamati nella pagina php. Ad esempio sotto Nome appaiono tutti i risultati del form, invece che solo il risultato relativo del nome. E così per tutti i div che inserisco.
Ciao a tutti, intanto buon 2009.
Avrei bisogno di consigli per risolvere un problema che mi ha fatto venire un mal di testa da alcuni giorni. Ho creato un form con controlli in ajax in tempo reale e i risultati vengono filtrati da una pagina php esterna, che a seconda dei valori inseriti da un determinato esito.
Fin qui tutto bene. Ma il problema nasce quando voglio inserire dei risultati in div diversi, per avere una migliore formattazione del form.
Anche qui sono riuscito in qualche modo a dare risultati in diversi div. Ma ovviamente il codice ajax si rifa a un'unica pagina php e quindi ogni volta a seconda del campo utilizzato appaiono sempre tutti i risultati. Cerco di spiegarmi meglio.
Esempio:
Nome:
Risultato ajax: Il nome Ok, il Cognome ok
Cognome:
Risultato ajax: Il nome ok, il cognome ok
Insomma vorrei fare in modo che nel primo div sotto il nome appaia solo il risultato del nome e sotto il div cognome il risultato relativo al cognome. L'unica soluzione che mi è venuta in mente è creare più pagine php, ma in questo modo non vado ad appesantire il tutto?
Ottimo, grazie per la disponibilità. Adesso vedo se riesco nel mio intento
Ho cercato nel forum e nonostante abbia trovato alcuni argomenti simili non sono riuscito a risolvere il problema.
All'interno del mio sito ho una piccola chat dove gli utenti possono conversare tranquillamente tra di loro. Ma ogni tanto capita che possa sfuggire un messaggio, quindi ho pensato, perché non dare la possibilità di cambiare il colore del testo tra due occorrenze?
Ad esempio se uno vuole scrivere a Paolo, se utilizza [Paolo], il risultato sarà [Paolo] colorato di rosso.
Sono riuscito utilizzando la funzione substr_count a contare quante volte in una frase viene inserito del testo tra [..], ma non sono riuscito a cambiare il colore del testo tra le occorrenze.
Avete suggerimenti?
Grazie in anticipo.
Ho risolto utilizzando il metodo $_GET. Recupero una variabile presente nella pagina con l'elenco degli iscritti e poi tramite una query richiamo il campo specifico che mi serve.
Ad esempio se scelgo Paolo, con il metodo $_GET prendo una variabile contenente il nome di paolo, e poi lo confronto in una query dove corrisponde il nome Paolo.
[..]
Mi unisco alla scelta. E' stato il mio primo libro sul PHP (versione 4 quando lo acquistai). Oltre a essere ben scritto, vengono riportati una serie di piccoli script che aiutano il lettore a comprendere meglio alcune funzioni del linguaggio. In più nel sito della casa editrice puoi scaricare gratuitamente alcuni script d'esempio (comunque è segnalato nel libro).
Ciao a tutti. Come al solito spero di non aprire una discussione simile a tante altre. Ma ho spulciato tutte le discussioni su questo argomento e non ho trovato specifiche a riguardo.
Più che un problema ho un dubbio e non so come procedere. Mi spiego: ogni utente iscritto ha la possibilità di creare un proprio profilo, e fin qui niente di così complicato. Riesce a visualizzare il profilo e a modificarlo tranquillamente.
Ora vorrei che un utente possa visualizzare i profili degli iscritti al sito, a seconda del nome scelto. Per esempio se clicco su Paolo, visualizzo il profilo di Paolo.
Avete consigli sulla strada da seguire?
Vi ringrazio in anticipo
Ok ci provo, grazie per la dritta. Un'ultima cosa, mettiamo che io voglia nascondere un link a un grado inferiore all'uno, faccio così?
<? codice php
if(dove il grado è maggiore di zero) {
?>
codice html con il link
<? { codice php ?>
Ottima idea. Quindi imposto un campo "grado" Int di default uguale a zero?
Poi tramite un form inserisco la scelta di due interi, uno e due a seconda del grado che voglio settare.
Ma se voglio cambiare l'intero di default mi basta semplicemente impostare una variabile ad esempio $grado =1? e poi impostare una query con il nome del campo "grado" uguale alla variabile assegnata?
Ho cercato in giro per il forum e non ho trovato indicazioni a riguardo, sperò di non aver visto male e di aver aperto l'ennesima discussione con questo argomento..
Sto cercando di assegnare a degli utenti alcuni privilegi di amministrazione. Ad esempio nel mio sito ho creato una piccola bacheca dove gli utenti possono inserire una nuova discussione e poi commentarla. Ecco vorrei dare la possibilità ad alcuni di loro di cancellare una discussione (che non è stata aperta da loro).
Mettiamo di voler assegnare dei gradi, ad esempio il primo grado permette all'utente di cancellare una discussione, al secondo grado invece di cancellare e magari cambiare il titolo.
Vorrei capire come posso assegnare a un campo di una tabella del mio database più utenti...avete consigli su come procedere?
Esempio: Grado 1--->utenti Paolo e Giovanni (nomi a caso)
Grado 2---> Alberto ed Enrico.
Vi ringrazio in anticipo
Perdonate se rompo ancora nel giro di un giorno. Ma non so per quale motivo il mio database non viene aggiornato a secondo della query che imposto nel codice, che ora riporto:
[PHP]
<?php
session_start();
include('config.php');
$update="UPDATE online SET Ultimologin ='NOW()' WHERE sessionid='1'";
$sql="SELECT * FROM online";
$query=@mysql_query($sql) or die (mysql_error());
while($row=mysql_fetch_array($query)) {
echo "{$row['Ultimologin']} <BR>";
echo "{$row['utente']} <BR>";
echo "{$row['id']} <BR>";
}
?>
[/PHP]
La mia idea è quella di stampare una data che viene aggiornata nel momento in cui l'utente entra in una determinata pagina e associarlo ovviamente al suo nome.
Il codice viene stampato ma la data non viene aggiornata.
Ho provato a cercare nel forum, ho provato consigli di altri utenti, ma il risultato è sempre lo stesso. Eppure non segnala errori
Ho risolto, grazie a tutti, i vostri consigli mi sono tornati davvero preziosi.
Alla fine il problema stava nel codice ajax che avevo sviluppato. In poche parole dopo aver seguito i vostri consigli non riusciva più a trovare i dati inviati tramite il form dei messaggi per colpa di una variabile imposta sul codice ajax. Infatti il database registrava tutto ma di fatto nelle pagine non veniva eseguito nulla...
Allora mi sono detto visto che ora so come richiamare gli utenti e il testo, perché non creare una chat interamente in php?
Ebbene, probabilmente con molta fortuna, tante prove e qualche guida trovata in giro per la rete e il forum, sono riuscito a implementare una chat in php.
L'ho testata e funziona egregiamente. Quindi come sono stato aiutato, sono disponibile ad aiutare tutti coloro che hanno bisogno di creare una piccola chat.
Grazie ancora!
Prova cosi:
<?php
$sql="SELECT utenti.user, messaggi.testo FROM utenti JOIN messaggi ON utenti.id = messaggi.id";
$query=@mysql_query($sql) or die (mysql_error());
while($array=mysql_fetch_array($query)){
echo"<br>".$array['id']."</br>: ".$array['testo']."<br>"; }
?>
In questo modo il codice non presenta errori. Ma la chat smette di funzionare, non invia più neanche il testo.
Facendo caso al database, ho notato che il database registra l'invio della stringa.
Intanto ti ringrazio per la tua risposta celere. Ho seguito i tuoi consigli ma il risultato è un errore:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/apache2-default/gestisci.php on line 23
Nella prima parte non ha segnalato errori, ed è questa :
<?
$id=$_SESSION['id'];
$testo=$_GET['testo'];
mysql_connect($host,$user,$password)or die("non riesco a connettermi");
mysql_select_db("$db")or die("non riesco selezionare il database");
$prova=mysql_query("insert into messaggi(testo,id) values('$testo','$id')");
?>
Ho cambiato il record id_user con il record presente nel mio database, cioè id.
La seconda parte è questa:
Aggiungo le tabelle mysql così ti fai un'idea di come sono strutturare:
utenti: (id, user, pass, mail)
messaggi: (id, utente, testo)
Ora il codice:
<?
$sql="SELECT utenti.user, messaggi.testo FROM utenti JOIN messaggi ON utenti.id = messaggi.id";
$query=@mysql_query($sql) or die (mysql_error());
while($array=mysql_fetch_array($query)){
echo"<br>$array['id']</br>: $array[testo]<br>"; } }
?>
Come si può notare ho selezionato in utenti, il record user (che sarebbe il riferimento al tuo record 'nome').
L'errore è relativo alla riga 23 cioè il ciclo while, ma immagino che l'errore risalga alla riga precedente del ciclo.