Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441

    Problema con input e suo name.

    IN POCHE PAROLE: ho creato un piccolo guestbook, o social network, uno si iscrive, entra, e può benissimo pubblicare degli stati sulla board del mio sito, con tanto di nome cognome data ora testo commenti e i tic come gli ho chiamati io, una sorta di mi piace sotto forma di numero.

    ECCO IL PROBLEMA: se un tipo preme tic ad un post, in teoria, la variabile tic, ovvero il numero iniziale 0, dovrebbe aumentare. Il problema è che ogni input tic dovrebbe essere disposto di un id per così riferirsi non ad un post qualsiasi ma al post a cui io ho approvato se così vogliamo dire.

    Qui ho incollato tutto della logica degli script, ora...come potrei assegnare ad ogni input, nel name, l'id del post, cioè delo stato, così da essere collegato a quest'ultimo?

    ALLO SCRIPT HO AGGIUNTO DEI COMMENTI PER UN AIUTO IN PIU' PER VOI, ANCHE SE LA COSA E' PIU' SEMPLICE DI QUELLO CHE POTREBBE SEMBRARE.

    SPERO DI ESSERE STATO CHIARO, CHIEDO ESTREMO AIUTO POICHE' E' DA UN PO CHE IN QUESTO PUNTO MI RITROVO FERMO NON TROVANDO NIENTE DI UTILE NEL WEB!

    Codice PHP:

    <?php

    /*-----FUNZIONE STATO, O POST()---------------------------------------------------------*/

        
    function stato() { /*FUNZIONE STATO*/

        
    global $nom$cog/*NOME E COGNOME*/
        
            
    $sdb/*COLLEGAMENTO AL DATABASE*/
            
            
    $sql 'SELECT COUNT(*) FROM stato'/*CONTO IL NUMERO DEI POST*/
            
    $query mysql_query($sql);
            
    $nrw mysql_fetch_row($query); 
            
                if (
    $nrw[0] > 0) { /* VERIFICA SE IL NUMERO DEI POST E' SUPERIORE A 0*/
            
                
    $sql 'SELECT * FROM stato ORDER BY ID DESC'/* SELEZIONO I POST IN ORDINE DI ID DECRESCENTE*/
                
    $query mysql_query($sql);
                
    $nrw mysql_num_rows($query);
                            
                    while (
    $nrw mysql_fetch_assoc($query)) { /*CREAZIONE DATI DEL POST*/
                    
                    
    global $id;
                                
                        
    $date $nrw['DATE'];
                        
    $time $nrw['ORA'];            
                        
    $id $nrw['ID']; /*ID DEL POST, ID ANCHE DEL INPUT TIC, AIUTO! COME FUNZIONA ORA?*/
                        
    $text $nrw['TESTO'];
                        
    $com $nrw['COM'];
                        
    $tic $nrw['TIC']; /* QUI X ESEMPIO AVEVO IDEA DI FARE $tic = $nrw['TIC']['ID'] ANDREBBE?*/ 
                                            
                        
    $stato "<div id='box8'> /* ECCO, QUESTO E' IL POST */
                        
                                    <div id='box13'>
                                        
    $nom $cog
                                    </div>
                                    
                                    <div id='box12'>    
                                        
    $text

                                    </div>
                                    
                                    <form method='POST' id='box15'>
                                        <span id='ncom'>
    $com</span>                                                
                                        <input
                                            type='submit'
                                            name='com'
                                            value='c'
                                            id='com'
                                            class='btn0'
                                            onmouseout=\"this.className = 'btn0'\"
                                            onmouseover=\"this.className = 'btn1'\"/>
                                        
                                        <span id='ntic'>
    $tic</span>                                                
                                        <input
                                            type='submit'
                                            name='tic' /* IL FAMOSO NAME DELL'INPUT*/
                                            value='+'
                                            id='tic'
                                            class='btn0'
                                            onmouseout=\"this.className = 'btn0'\"
                                            onmouseover=\"this.className = 'btn1'\"/>    
                                    </form>
                                    
                                    <div id='box14'>
                                        
    $time | $date
                                    </div>
                                        
                                </div>"
    ;
                                                    
                        echo 
    $stato/* STAMPA DEI VARI POST PUBBLICATI */
                                
                        
    $text NULL/* RESET DEL TESTO*/
                                         
                    
    }
                
                }
            
        }
        
    /*-----FUNZIONE TIC()---------------------------------------------------------*/
        
        
    function tic() {
                            
            
    $sdb/* COLLEGAMENTO AL DATABASE */
                        
            
    $sql "SELECT * FROM stato WHERE ID=$id"/* QUI INIZIANO I PROBLEMI, INTERROGO PRENDENDO LE RISORSE DEL DATABASE CON ID UGUALE ALL'ID DEL POST, AIUTO ANCHE QUI*/
            
    $query mysql_query($sql);
            
    $nrw mysql_num_rows($query);            
                        
                while (
    $nrw mysql_fetch_assoc($query)) {
                                                        
                    
    $tic $nrw['TIC'];
                    
                }    
                
            
    $tic true/* SEL AL PREMERE TIC DIVENTA VERA, AUMENTA DI 1*/
            
                
    if ($tic == true) {
                
                    
    $tic++;
                
                }        
                
            
    mysql_query("UPDATE stato SET TIC=$tic WHERE ID=$id"); /* AGGIORNO IL DATABASE CON IL NUOVO VALORE DELLA VARIABILE TIC*/
                                    
        
    }
        
    /*----------INIZIO DELLO SCRIPT-------------------------------------------------------------------------------------------------------------*/
            
        
    if (isset($_POST['comment'])) { /* SE SCRIVO DENTRO ALLA TEXTAREA DEL TESTO E PREMO INVIA */
            
            
    $text $_POST['comment'];
                                        
            if (
    $text!='') {        
                
                global 
    $tic$com;
                
                
    $con;
                
                
    $date = (date('d-m-Y'));
                
    $time = (date('g:i A'));
                
    $tic 0;
                
    $com 0;            
                                                        
                
    mysql_query
                
    ("INSERT INTO stato VALUES ('','".$nom."','".$cog."','".$date."','".$time."','".$text."','".$com."','".$tic."')");    /*INDERISCO I DATI NEL DATABASE*/
                        
                
    $query mysql_query("SELECT * FROM stato ORDER BY ID DESC LIMIT 1") or die (mysql_error()); /* SELEZIONO ULTIMO POST PUBBLICATO*/
                
    $nrw mysql_num_rows($query);
                                        
                if (
    $nrw!=0) {
                        
                    while (
    $nrw mysql_fetch_assoc($query)) {
                    
                        
    $text $nrw['TESTO']; 
                        
                        
    stato(); /*ESEGUO FUNZIONE STATO*/
                                            
                    
    }                        
                                                    
                }
            
            } else {
                
    $text NULL;
            }
            
        } else {
        
            
    stato(); /* SE NON HO PUBBLICATO ALCUNO STATO, ALLORA VENGONO CARICATI TUTTI GLI ALTRI, COME SE FOSSI ANDATO SULLA BACHECA DI FACEBOOK, VENGONO STAMPATI TUTTI GLI STATI.
            
            if (isset($_POST['$id'])) { /* ECCO, SE PREMO TIC, OVVERO UN TIPO DI MI PIACE, ALLORA ESEGUO FUNZIONE TIC()*/
            
                
    tic();
                    
            }
            
            
    $_SERVER['PHP_SELF'];
                            
        }
            
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    potresti separare il form del post da quello del tic, e in quello del tic aggiungere un input type hidden con l'id del post cui si riferisce, con poche modifiche te ne esci.

  3. #3
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    @tutti, altre soluzioni?

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    considera che l'input type submit non viene inviato quindi non ha senso rinominare il name di tic dovresti comunque inserire un input type hidden con l'id del post

  5. #5
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    chiedo aiuto con la sintassi, quindi che faccio?
    Aggiungo sotto l'input tic di tipo submit un input di tipo hidden?

    Codice PHP:
    <form method='POST' id='box15'>
    <
    span id='ncom'>$com</span>                                                
    <
    input type='submit' name='com' value='c'/>

    <
    span id='ntic'>$piu</span>                                                
    <
    input type='submit' name='tic' value='+'/>
    <
    input type='hidden' name='$id'/>
    </
    form
    E con che name? $id? Non ho ben capito, potresti aiutarmi con la sintassi e tutto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    lo puoi mettere sopra sotto o di lato, l'importante è che sia nel form

    Il name deve essere costante altrimenti come fai a prenderlo nella pagina php in cui gestisci l'array $_POST?

    quindi scrivi qualcosa del tipo

    <input type=hidden name='idprodotto' value='$id'>

    Continua a risultarmi incomprensibile il perchè dei 2 submit nello stesso form, , il problema qui è con l'html...

  7. #7
    Utente di HTML.it L'avatar di andbaz
    Registrato dal
    Jul 2011
    Messaggi
    441
    RISOLTO, ho fatto come hai detto, ora mi sento dio, non credevo nell'esistenza del type hidden, grazie!

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.