Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-04-2011, 10:53   #1
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
[PHP] Interrogazione SQL come renderla dinamica?

CIao, sto cercando il modo di creare delle pagine in HTML e PHP per presentare i risultati di una ricerca in un database fatta attraverso una query SQL nella quale inserisco i valori presi da un form.
Fin qui ci sono riuscito creando le seguenti pagine:
  1. Pagina con form in HTML
  2. Pagina che si collega al DB, esegue la query SQL e presenta i risultati (tutto in PHP)
Mi interesserebbe ora fare qualcosa di più sofisticato, in pratica una volta che a pagina 2 sono presentati i risultati l'utente dovrebbe poter scegliere di nascondere alcuni risultati quindi la tabella dovrebbe aggiornarsi dinamicamente senza ricaricare la pagina.

Faccio un esempio che spero aiuti a spiegarrmi: a pagina 1 indico che voglio fare una ricerca tra tutti gli utenti che vivono a Roma. A pagina 2 mi vengono presentati in una tabella tutti i risultati trovati dalla query:
Codice:
SELECT *
FROM Utenti
WHERE comune='Roma'
a questo punto vorrei fare un piccolo menu in alto o a sinistra dove l'utente può scegliere di limitare i risultati presentati ai soli utenti di sesso femminile.
Quindi:
Codice:
SELECT *
FROM Utenti
WHERE comune='Roma' AND sesso='F'
con quale tecnologia o linguaggio è possibile farlo? Conosco HTML, CSS e PHP e ora mi sto avventurando nel vasto mondo di Javascript ed AJAX...
Se mi date qualche parola chiave da cercare potrei anche provare a cercare su Google se c'è qualcosa di simile a cui ispirarsi.
GRAZIE!!!
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2011, 13:37   #2
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Con javascript hai tutto quello che ti serve. In linea di principio dovresti al click nel menù far partire una richiesta ajax passando cosa è stato clickato ad una pagina PHP(che può essere anche quella in cui sei). Questa pagina PHP deve fare echo del contenuto che deve cambiare. La chiamata ajax prende in ingresso una funzione da eseguire se ha avuto successo e a cui viene passato automaticamente come argomento la risposta della pagina PHP. A quel punto non ti resta che sostituire i tuoi dati (che avrai avuto l'accortezza di mettere dentro un div per sostituire tutto in una volta sola) con ciò che ti ha ritornato la chiamata ajax dentro questa funzione.

Ho fatto cose simili solo con jQuery quindi se vuoi posso farti un esempio con quello.
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2011, 17:23   #3
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
Intanto grazie 1000 della risposta. Personalmente non conosco jQuery però non è un problema studiarlo ed impararlo se serve a raggiungere il mio obiettivo. Preferisco leggere un libro che mi insegni qualcosa di utile piuttosto che rincitrullirmi a guardarre la De Filippi in TV.
Sarei molto felice di poter vedere un esempio pratico se ne hai fatto uno simile anche se, come ho già detto, devo proma studiarmi almeno un po' come funziona jQuery per comprenderlo cmq intanto se non ti dà problemi lo potresti postare qui sul forum oppure ti posso fornire il mio indirizzo e-mail via messaggio privato...come preferisci.
Grazie!
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2011, 19:10   #4
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Beh, di jquery per usare l'ajax non ti serve sapere molta roba.

L'unica cosa che devi fare è:
Codice:
$.ajax({
  url: 'test.php',
  data: 'sex=F',
  type: 'POST',
  success: function(data) {
    $('#result').html(data);
  }
});
dove result è l'id del div dove mettere il nuovo contenuto.
test.php sarà una pagina che controlla che parametri sono passati in POST, esegue la query basandosi sui parametri e crea l'output ma che non farà return ma echo. Prova e poi dimmi pure qua se ti serve sapere qualcosa.
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 07-05-2011, 19:23   #5
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
Dopo una veloce studiata di JQuery sono riuscito ad utilizzare effcacemente e piuttosto velocemente il tuo codice. Grazie!
Mi resta però un dubbio, al momento i valori che la pagina "test.php" li scrivo io manualmente nel codice della pagina quindi sono sostanzialmente fissi.
Vorrei utilizzare invece un form che mi permetta di inserire direttamente dal browser il valore.
Ho scritto il seguente codice che chiede il nome e poi nella pagina 03.php tramite un echo lo "stampa a video".
Codice:
<HTML>
<HEAD>
<script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</HEAD>
<BODY>
<form action="03.php" method="post">
<input type="text" name="nome" size="15">
<input type="submit" value="Calcola" id="Calcola"  tabindex="110"></p>
</form>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
  $.ajax({url:"03.php", type: 'POST',data: 'nome=Nicola', success:function(data){
    $("#result").html(data);
  }});
});});
</script>

<div id="result">Testo prima del cambiamento</div>
</BODY>
</HTML>
Purtroppo però non ho trovato un modo per inserire al posto del nome Nicola il valore che viene inserito all'intero del form. Se premo calcola mi apre in un'altra pagina il file 03.php con il nome inserito però viene completamente bypassata la funzione javascript.
Come posso fare? Mi basta anche qualche input poi cerco di documentarmi in autonomia.

Grazie ancora!

Ultima modifica di *nicola* : 07-05-2011 alle 21:07.
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 07-05-2011, 20:58   #6
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Per prendere il valore dal form:

Codice:
$("button").click(function(){
  var data =  'nome=' + $('input[name=nome]').attr('value');
  $.ajax({url:"03.php", type: 'POST',data: data, success:function(data)     {
    $("#result").html(data);
  }});
});
Il tuo problema è che il selettore del pulsante è sbagliato. Il pulsante non è un button ma un input:submit. Trasforma il selettore da

Codice:
$("button")
a così

Codice:
$("#Calcola")
Che rappresenta l'elemento con id Calcola.
Tra l'altro, alla fine della funzione al click metti
Codice:
return false;
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 08-05-2011, 14:10   #7
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
Ti ringrazio! Ora funziona benone, cercando sul web avevo trovato serialize() però non riuscivo a far apparire i risultati in un formato diverso da name=Nicola, in pratica non riuscivo a far venire fuori solo "Nicola".

Mi permetto di romperti le scatole ancora una volta (spero che sia l'ultima).
Sto cercando di generalizzare un po' l'esempio per farlo funzionare con 2 input (nome e cognome) anzichè con solo il nome però non ci riesco. Inserendo qualche linea scovata su Internet sono arrivato a questo punto però lo script fallisce e mi apre la pagina 03.php senza usare AJAX.

Codice:
<HTML>
<HEAD>
<script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</HEAD>
<BODY>
<form action="06.php" method="post">
<input type="text" name="nome" size="15">
<input type="text" name="cognome" size="15">
<input type="submit" value="Calcola" id="Calcola"  tabindex="110"></p>
</form>
<script type="text/javascript">
$("#Calcola").click(function(){
  var nome =  'nome=' + $('input[name=nome]').attr('value');
  var cognome =  'cognome=' + $('input[name=cognome]').attr('value');
  $.ajax({url:"03.php", type: 'POST',"nome=" + nome + "cognome=" + cognome, success:function(nome, cognome)     {
    $("#result").html(nome, cognome);
  }});
  return false;
});
</script>

<div id="result">Testo che si legge prima del cambiamento</div>

</BODY>
</HTML>
il file 06.php, per il momento, ha solo lo scopo di "raccogliere" i dati e stamparli a schermo:
Codice:
<?php
$nome=$_POST["nome"];
$cognome=$_POST["cognome"];
echo"Io mi chiamo $nome";
echo"e $cognome di cognome";
?>
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 08-05-2011, 17:08   #8
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Penso il problema sia dovuto al modo in cui mandi i dati. Se il problema è quello le soluzioni sono 2.
Se continui ad usare la stringa devi mettere & tra una variabile e l'altra e quindi diventa

Codice:
"nome=" + nome + "&cognome=" + cognome
Inoltre stai mettendo "nome=" sia nella variabile nome sia nella stringa di inserimento e quindi la tua stringa alla fine diventa "nome=nome=Nicola".

Altrimenti passi agli oggetti:

Codice:
var data = {};
data['nome'] = $('input[name=nome]').attr('value');
data['cognome'] = $('input[name=cognome]').attr('value');
E passi l'oggetto al posto della stringa. Attento che nella chiamata ajax hai perso il nome della proprietà

Codice:
{
  url:"03.php", 
  type: 'POST',
  data: "nome=" + nome + "cognome=" + cognome, 
  success:function(nome, cognome)     {
     $("#result").html(nome, cognome);
  }
}
Se hai altri dubbi chiedi pure.
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 08-05-2011, 17:39   #9
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
Che bellezza...ho risolto grazie!

Posto il codice nel caso in cui possa tornare utile ai posteri.

Allora il codice della pagina con il form è:
Codice:
<HTML>
<HEAD>
<script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</HEAD>
<BODY>
<form action="06.php" method="post">
<input type="text" name="nome" size="15">
<input type="text" name="cognome" size="15">
<input type="submit" value="Calcola" id="Calcola"  tabindex="110"></p>
</form>
<script type="text/javascript">
$("#Calcola").click(function(){
  var nome =  'nome=' + $('input[name=nome]').attr('value');
  var cognome =  'cognome=' + $('input[name=cognome]').attr('value');
  $.ajax({url:"06.php", type: 'POST',data: "nome=" + nome + "&cognome=" + cognome, success:function(nome, cognome)     {
    $("#result").html(nome, cognome);
  }});
  return false;
});
</script>

<div id="result">Testo che si legge prima del cambiamento</div>

</BODY>
</HTML>
mentre il codice della pagina (06.php) con il testo che deve apparire nella pagina quando si preme "calcola" è:
Codice:
<?php
$nome=$_POST["nome"];
$cognome=$_POST["cognome"];
echo"Il mio nome è $nome, il mio cognome, se non ricordo male, è $cognome."
?>
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2011, 21:32   #10
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Quote:
Originariamente inviato da *nicola* Guarda i messaggi
Codice:
<HTML>
<HEAD>
<script type="text/JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</HEAD>
<BODY>
<form action="06.php" method="post">
<input type="text" name="nome" size="15">
<input type="text" name="cognome" size="15">
<input type="submit" value="Calcola" id="Calcola"  tabindex="110"></p>
</form>
<script type="text/javascript">
$("#Calcola").click(function(){
  var nome =  'nome=' + $('input[name=nome]').attr('value');
  var cognome =  'cognome=' + $('input[name=cognome]').attr('value');
  $.ajax({url:"06.php", type: 'POST',data: "nome=" + nome + "&cognome=" + cognome, success:function(nome, cognome)     {
    $("#result").html(nome, cognome);
  }});
  return false;
});
</script>

<div id="result">Testo che si legge prima del cambiamento</div>

</BODY>
</HTML>
mentre il codice della pagina (06.php) con il testo che deve apparire nella pagina quando si preme "calcola" è:
Codice:
<?php
$nome=$_POST["nome"];
$cognome=$_POST["cognome"];
echo"Il mio nome è $nome, il mio cognome, se non ricordo male, è $cognome."
?>
Sempre per i posteri, le parti in rosso non vengono usate per nulla. ^^
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 11:00   #11
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da Kenger Guarda i messaggi
Sempre per i posteri, le parti in rosso non vengono usate per nulla. ^^
Scusa, mi spieghi una cosa? Riguardo le ultime due cose che hai messo in rosso. Come mai solo cognome non serve? Che differenza c'è con nome? Non capisco. Grazie
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 11:55   #12
black_wizard
Senior Member
 
L'Avatar di black_wizard
 
Iscritto dal: Nov 2001
Città: Boscoreale (NA)
Messaggi: 421
le parti in rosso ovviamente rappresentano gli errori nel codice.
I primi 2 sono ovvi perchè
Codice PHP:
var nome =  'nome=' + $('input[name=nome]').attr('value');
var 
cognome =  'cognome=' + $('input[name=cognome]').attr('value'); 
perchè non c'è bisogno di mettere nome= e cognome= visto che nella variabile data tu hai riscritto nome= e cognome= .
Lasciando come sta ora nella pagina 06.php la variabile nome diventerà "nome=PIPPO" invece di essere soltanto "PIPPO" e l'echo risultante sarà
"Il mio nome è nome=PIPPO, il mio cognome, se non ricordo male, è cognome=ROSSI."

Perciò bisogna eliminarli da var nome e cognome...e fare direttamente
Codice PHP:
var nome =  $('input[name=nome]').attr('value');
var 
cognome = $('input[name=cognome]').attr('value'); 
Poi l'errore che chiedevi tu
Codice PHP:
success:function(nomecognome)  {
$(
"#result").html(nomecognome);

in questo caso la function success ritorna, sotto forma di variabile, l'echo che stampa nel file 06.php. Perciò è un'unica variabile non sono 2.
Lasciando il codice come l'hai scritto tu, cognome dovrebbe essere una variabile non definita...infatti se provi a eliminarla e mettere soltanto $("#result").html(nome); vedrai che ti scriverà nell'html sempre lo stesso risultato.
La soluzione sarebbe
Codice PHP:
success:function(data)  {
$(
"#result").html(data);


Ultima modifica di black_wizard : 10-05-2011 alle 12:03.
black_wizard è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 13:19   #13
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Grazie, comunque non sono io l'autore del thread xD
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2011, 15:24   #14
black_wizard
Senior Member
 
L'Avatar di black_wizard
 
Iscritto dal: Nov 2001
Città: Boscoreale (NA)
Messaggi: 421
Quote:
Originariamente inviato da ndakota Guarda i messaggi
Grazie, comunque non sono io l'autore del thread xD
lo so ma ho voluto spiegare gli errori per tutti.
black_wizard è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2011, 12:23   #15
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Ragazzi ho un problema.. Nell'html generato dal mio script ho una tabella con dei link che si possono cliccare per far qualcosa ma qua dentro non so come gestirla. Cioè, questa tabella ce l'ho anche da un'altra parte senza essere richiamata da ajax e funziona alla perfezione. Invece, richiamata da ajax, non so come gestire i link. Non so neanche che pagina dovrei richiamare. Qualcuno mi dà un hint?
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2011, 23:57   #16
*nicola*
Senior Member
 
L'Avatar di *nicola*
 
Iscritto dal: Jun 2005
Messaggi: 408
Quote:
Originariamente inviato da ndakota Guarda i messaggi
Ragazzi ho un problema.. Nell'html generato dal mio script ho una tabella con dei link che si possono cliccare per far qualcosa ma qua dentro non so come gestirla. Cioè, questa tabella ce l'ho anche da un'altra parte senza essere richiamata da ajax e funziona alla perfezione. Invece, richiamata da ajax, non so come gestire i link. Non so neanche che pagina dovrei richiamare. Qualcuno mi dà un hint?
Io non sono un grande esperto di Jquery però devo dire che proprio non ho capito la situazione, ti invito a spiegarti meglio postando anche qualche esempio elementare e magari aprire un tread ad hoc per questo problema in modo che in questo restino le discussioni sull'utilizzo di form, SQL e Jquery.
*nicola* è offline   Rispondi citando il messaggio o parte di esso
Old 13-05-2011, 23:21   #17
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Quote:
Originariamente inviato da *nicola* Guarda i messaggi
Io non sono un grande esperto di Jquery però devo dire che proprio non ho capito la situazione, ti invito a spiegarti meglio postando anche qualche esempio elementare e magari aprire un tread ad hoc per questo problema in modo che in questo restino le discussioni sull'utilizzo di form, SQL e Jquery.
Concordo, e servono maggiori informazioni. Tipo qual è il problema. Facendo un tentativo a caso posso dirti che se aggiungi alla pagina del javascript attraverso ajax quello non è codice chiamabile, deve essere aggiunto manualmente al DOM.

Se ti sembra il tuo caso ne parliamo meglio (in un altro thread) sennò spiega meglio che succede. ^^
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2011, 12:45   #18
Ludo237
Member
 
L'Avatar di Ludo237
 
Iscritto dal: Feb 2009
Città: Varese
Messaggi: 205
perchè non usare json_encode?
Ludo237 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2011, 21:49   #19
Kenger
Member
 
Iscritto dal: Aug 2005
Messaggi: 168
Quote:
Originariamente inviato da Ludo237 Guarda i messaggi
perchè non usare json_encode?
Per far cosa scusa?
Kenger è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2011, 21:50   #20
Ludo237
Member
 
L'Avatar di Ludo237
 
Iscritto dal: Feb 2009
Città: Varese
Messaggi: 205
per passare i dati,tramite ajax,da pagine php
Ludo237 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il nuovo OnePlus Nord 6 è vicino al debu...
Tesla svela i risultati del Q4: conferma...
Nuova rimodulazione da Fastweb: fino a 3...
La NVIDIA RTX 5090 potrebbe presto costa...
ASUS non produrrà più smar...
CoopVoce sta per lanciare il 5G: ecco qu...
Factorial, azienda di batterie allo stat...
Le specifiche fuori di testa della Yangw...
I numeri incredibili di Xiaomi: nel 2025...
In Cina è pronto il parco fotovol...
Neuralink accelera: produzione di massa ...
Starlink abbassa l'orbita di migliaia di...
Dal MIT una nuova batteria per auto elet...
Adam Mosseri parla di IA su Instagram: l...
Suonerie personalizzate e Tone Store: il...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:33.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v