Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Recuperari valori da form con nomi campi "sconosciuti"

    Ho un database (MySQL) che contiene diverse tabelle che vengono usate per memorizzare informazioni simili, ma non identiche. Ogni tabella raccoglie informazioni di una certa categoria di prodotti.
    Per esempio, una tabella memorizza le informazioni sulle penne (colore, materiale, spessore punta, ecc), un'altra tabella memorizza informazioni sulle matite (colore, durezza, ecc). Alcuni campi sono identici, altri diversi. Alcune tabelle hanno, per esempio, 5 campi, altre 6, e così via.
    Le tabelle sono davvero tante...


    Sto creando delle pagine che mi permettano di scrivere in questo database, ma non posso scrivere una pagina per ogni tabella (categoria), ma vorrei scrivere una sola pagina per aggiungere i prodotti, una per modificarli, ecc.


    Mi sto muovendo in questo modo.

    Nella pagina di aggiunta prodotto, ho inserito una combo che mi permette di scegliere la categoria (che corrisponde ad una certa tabella).
    Fatto questo, costruisco il form, dove vengono mostrati i campi della tabella corrispondente a quella categoria.

    Questo è il form
    Codice PHP:
    sqlString "SELECT * FROM " tabella
    SET RS 
    Conn.Execute(sqlString)

    Response.Write("<form method=""post"" name=""gestione"" action=""gestione_prodotti.asp?id_categoria=")
    Response.Write(id_categoria)
    Response.Write(""">")

    For 
    Each f In RS.Fields
    IF f.Name <> "id"  And f.Name <> "attiva" Then
    IF f.Name "img" Then
            UCase
    (Left(f.Name,1))
            
    Response.Write ("[b]" & (UCase(Left(f.Name,1)) & Mid(f.Name,2) & ":[/b]
    "
    ))
            
    Response.Write ("<input name=""" f.Name """ size=""20"" maxlength=""20"">")
            
    Response.Write("[url=""]Inserisci immagine[/url]
    "
    )
            
    Response.Write("

    "
    )
        Else
    UCase(Left(f.Name,1)) 
    Response.Write ("[b]" & (UCase(Left(f.Name,1)) & Mid(f.Name,2) & ":[/b]
    "
    ))
    Response.Write ("<input name=""" f.Name """ size=""20"" maxlength=""20"">

    "
    )
        
    End If
    End If
    Next
    RS
    .Close 
    Set RS 
    Nothing
    Response
    .Write("<input name=""submit"" type=""submit"" value=""Aggiungi prodotto"">")
    Response.Write("<input name=""AggiungiProdotto"" value=""1"" type=""hidden"">")
    Response.Write("</form>"
    Con questo codice ottengo la mia pagina con il form.

    Il problema adesso è recuperare i valori del form nell'altra pagina.

    Non conoscendo a priori i nomi dei campi, non posso scrivere nella pagina dove recupero i valori del codice tipo:
    Codice PHP:
    img TRIM(Request("img")) 
    .

    Nell'altra pagina riesco a farmi mostrare l'elenco dei campi con questo codice:
    Codice PHP:
    sqlString "SELECT * FROM " tabella
    SET RS 
    Conn.Execute(sqlString)

    For 
    Each f In RS.Fields
    If f.Name <> "id" Then
    Response
    .Write(f.Name)
    Response.Write("
    "
    )
    End if
    Next 
    Vedo solo i nomi dei campi, ma non ho idea di come recuperare i dati dal form.

    Qualche idea?

    Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Ho fatto una modifica al form e adesso sto provando a passare i dati del form con GET. Poi dall'URL della pagina cercherò di tirar fuori i dati che mi interessano.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    OK, dall'URL riesco a recuperare le informazioni che mi servono, ma adesso non riesco ad usarle.

    Sono in grado di stamparle con un Response.Write, ma non riesco ad usarle nella query.

    A questo punto, mi serve davvero una mano!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Nessuno???

  5. #5
    in che senso non li riesci a utilizzare nella query?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Grazie per la risposta.

    Nel mio primo post ho scritto come viene creato il form. Nel form, non scrivo in nomi dei campi, ma li ricavo tramite f.Name.

    Ho pensato di passare i dati con GET e così mi trovo in querystring i nomi dei campi ed i valori inseriti del form.

    Dalla querystring, manipolando il testo, posso far stampare a video i dati che mi interessano, ma non riesco ad usare quei dati da inserire nella query.

    Per esempio, per inserire i dati, non posso scrivere:
    sql = "INSERT INTO tabella (codice) VALUES (1)"
    Non posso farlo, perché quando scrivo il codice della query, non conosco i nomi dei campi.


    Magari mi sto perdendo in in bicchiere d'acqua...

    Questo è un esempio della querystring che ottengo:
    gruppo=1&codice=2&descrizione=3&id_categoria=1&sub mit=Aggiungi+prodotto&AggiungiProdotto=1

    Cosa mi suggerisci per scrivere una query di inserimento dati?

  7. #7
    ma usare un request.querystring ???

    gruppo=request.querystring("gruppo")
    codice=request.querystring("codice")
    ecc...

    mi sa che non è chiaro quello che non riesci a fare

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Cerco di spiegarmi meglio...

    A seconda della categoria di prodotto sulla quale sto lavorando, la querystring mi mostra:
    Codice PHP:
    gruppo=&codice=&descrizione=&materiale=&diametro_interno=&diametro_filo=&LXH=&L=&confezione=&img=&id_categoria=1&submit=Aggiungi+prodotto&AggiungiProdotto=
    oppure

    Codice PHP:
    gruppo=&codice=&descrizione=&materiale=&diametro_interno=&diametro_filo=&L2=&L=&HXL=&raggio=&binario=&confezione=&img=&id_categoria=2&submit=Aggiungi+prodotto&AggiungiProdotto=
    oppure

    Codice PHP:
    gruppo=&codice=&descrizione=&portata=&diametro_ruota=&HXL=&confezione=&img=&id_categoria=3&submit=Aggiungi+prodotto&AggiungiProdotto=
    ecc...

    Come vedi, la stringa passa informazioni sempre diverse per ogni categoria.

    In certe categorie ho il campo "diametro_interno", in altre c'è "raggio", ma non "diametro_interno", in altre categorie ci sono entrambi i campi.

    Non posso costruire una pagina di amministrazione specifica per ogni categoria, dal momento che le categorie sono tante.


    Tu hai qualche idea su come procedere?

    Ho provato a splittare la stringa e a mettere le informazioni in un array, ma non sono arrivato a niente di utile...

    Grazie!

  9. #9
    allora io farei così
    o
    recupero sempre tutti i dati
    oppure
    se i dati passati dipendono dalla categoria prodotto,andrei a recuperare i dati a seconda della categoria

    es.
    categoria=1
    passa le variabili a,g,f,r nel programma avrò
    if categoria=1 then
    a=request.querystring("a")
    g=request.querystring("g")
    f=request.querystring("f")
    r=request.querystring("r")
    end if

    oppure ancora più comodo crei una tabella contenente tutte le categorie con tutti i campi appartenenti alla categoria e sfrutti il db

  10. #10
    Originariamente inviato da Roby140569
    ...
    Ho provato a splittare la stringa e a mettere le informazioni in un array, ma non sono arrivato a niente di utile...
    anche la tua idea non è malaccia, non capisco dove trovi problemi, magari devi usare 2 array uno per indicare la variabile e uno il valore, oppure nello stesso array dove il primo valore indica il nome della variabile e il secondo il valore assegnato alla variabile

    effettivamente ci sono un'infinità di modi, se splitti ricordati di rendere numerici i valori numerici, con la split lui li legge come testo quindi dovrai fare int(valore)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.