Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    84

    problema update record mysql con form WYSIWYG

    ciao a tutti ho 2 pagine una per inserire e l'altra per aggiornare articoli inseriti in mysql tramite form con editor WYSIWYG il campo del testo è di tipo longtext vi anticipo che ho provato ad impostarlo anche text ma non cambia nulla.
    queste sono le 2 pagone ( forse ci sarà del codice inutile ma quello lo toglierò poi)

    insert.php ( per inserire i nuovi articoli)

    Codice PHP:

    <html> 
    <head> 
    <title>Form dati</title> 
    <title>Replace Textareas by Class Name &mdash; CKEditor Sample</title>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
        <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
        <script src="sample.js" type="text/javascript"></script>
        <link href="sample.css" rel="stylesheet" type="text/css" />
    </head> 
    <body> 


     


    <?php echo" <form method=\"POST\" action=\"inviainsert.php\" enctype=\"multipart/form-data\">"?>  
     <div>posizione menu'</div>
     <div>
     
      superiore<input type="radio" name="pmenu" value="1"

      
      

      
      laterala<input type="radio" name="pmenu" value="2"

      


     calendario<input type="radio" name="pmenu" value="3"

      
      />

    </div>
    <div>titolo menu'</div>
    <div><input name="tmenu" type="text" value=""></div>
    <div>Immagine di copertina (valida solo per il menu' laterale)</div>
    <div><input name="file2" type="file" value="" /></div>
    <div>titolo pagina</div>
    <div><input name="ttesto" type="text" value=""></div>
    <div><script type="text/javascript" src="/admin/Scripts/fckeditor/fckeditor.js"></script>
    <script type="text/javascript">
    var oFCKeditor = new FCKeditor('INS_ARTICOLO');
    oFCKeditor.BasePath = "/admin/Scripts/fckeditor/"; oFCKeditor.InstanceName = "INS_ARTICOLO"; 
    oFCKeditor.Width = "650px"; oFCKeditor.Height = "400px"; 
    oFCKeditor.Create();
    </script></div>

    <input type=submit value=Inserisci nuovi dati>
    </form>

    </table> 
    </body> 
    </html>
    e la pagina update.php che uso per modificare gli articoli ( il link sarà poi x esempio update.php?id=xx dove xx è l 'id dell'articolo da modificare in modo tale che compili i campi del form on i dati attuali dell'articolo)

    Codice PHP:


    <html> 
    <head> 
    <title>Form dati</title> 
    <title>Replace Textareas by Class Name &mdash; CKEditor Sample</title>
        <meta content="text/html; charset=utf-8" http-equiv="content-type" />
        <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
        <script src="sample.js" type="text/javascript"></script>
        <link href="sample.css" rel="stylesheet" type="text/css" />
    </head> 
    <body> 


     

    <?php


      $conn
    =mysql_connect("*********""*********""*********");
        if (!
    $conn)
        {
            die(
    "Connessione a Mysql non riuscita " mysql_error());
        }
        
        
    $db=mysql_select_db("*********"$conn);
        if (!
    $db)
        {
            die(
    "Connessione al Database non riuscita " mysql_error());
        }    
      
    ?> 


    <?php
       
            $Risultato
    =mysql_query("select * from pages WHERE id = '" $_GET['id'] . "' "$conn);
            if (!
    $Risultato)
            {
                die(
    "La tabella selezionata non esiste " mysql_error());
            }

            while (
    $riga=mysql_fetch_array($Risultato))
            {
              
            
    $pmenu "" $riga['pmenu'] . "" ;
            
    $tmenu "" $riga['tmenu'] . "" ;
            
    $immagine "" $riga['immagine'] . "" ;
            
    $ttesto "" $riga['ttesto'] . "" ;
            
    $testo "" $riga['testo'] . "" ;
            }
            
    mysql_close();  
        
    ?>
     
    <?php echo" <form method=\"POST\" action=\"inviaupdate.php?id=" .$_GET['id']. "\" enctype=\"multipart/form-data\">"?>  
     <div>posizione menu'</div>
     <div>
     
      superiore<input type="radio" name="pmenu" value="1"
      <?php
    //specifico il valore della variabile $tempo


    //Costruisco la condizione
    if ($pmenu == "1"){
      echo 
    "checked=\"checked\"";
    }
    ?>

      
       />
      laterala<input type="radio" name="pmenu" value="2"
        <?php
    //specifico il valore della variabile $tempo


    //Costruisco la condizione
    if ($pmenu == "2"){
      echo 
    "checked=\"checked\"";
    }
    ?>
      


       />
      laterala<input type="radio" name="pmenu" value="3"
        <?php
    //specifico il valore della variabile $tempo


    //Costruisco la condizione
    if ($pmenu == "3"){
      echo 
    "checked=\"checked\"";
    }
    ?>
      
      />

    </div>
    <div>titolo menu'</div>
    <div><input name="tmenu" type="text" value="<?php echo "$tmenu"?>"></div>
    <div>Immagine di copertina (valida solo per il menu' laterale)</div>
    <div><input name="file2" type="file" value="<?php echo "$immagine"?>" /></div>
    <div>titolo pagina</div>
    <div><input name="ttesto" type="text" value="<?php echo "$ttesto"?>"></div>
    <div><script type="text/javascript" src="../admin/Scripts/fckeditor/fckeditor.js"></script>
    <script type="text/javascript">
    var oFCKeditor = new FCKeditor('INS_ARTICOLO');
    oFCKeditor.BasePath = "../admin/Scripts/fckeditor/"; oFCKeditor.InstanceName = "INS_ARTICOLO"; 
    oFCKeditor.Value = "<?php echo"" $testo"";?>"; 
    oFCKeditor.Width = "650px"; oFCKeditor.Height = "400px"; 
    oFCKeditor.Create();
    </script></div>

    <input type=submit value=Inserisci nuovi dati>
    </form>

    </table> 
    </body> 
    </html>
    la pagina di inserimento funziopna sempre quella di update invece ha dei problemi che ho capito ma che non riesco a risolvere.
    il problema sta nel fatto che la pagina di insert ha l'editor visivo ma quazndo inserisci i valori in mysql oltre ad usare i valori
    codice:
       <div>  ecc
    per distinguere le varie righe va proprio a capo nella casella quindi scrive ad esempio
    codice:
    linea 1 </P>
    
    
     linea 2 </P>
    
    
     linea 3 </P>
    invece che

    codice:
    linea 1 </P> 
    
     linea 2 </P> 
    
     linea 3 </P>
    e questo da problemi a l'editor visuale nella pagina di update che scompare proprio perchè il codice che deve visualizzare è scritto su più righe se io invece vado in mysql e modifico il codice manualmente portandolo su una sola riga quindi da
    codice:
    linea 1 </P>
    
    
     linea 2 </P>
    
    
     linea 3 </P>
    a

    codice:
    linea 1 </P> 
    
     linea 2 </P> 
    
     linea 3 </P>
    quando apro la pagina di update vedo l'editor visuale ed il testo è formattato correttamente.
    in sintesi quello che devo fare io è che la pagina di insert inserisca il codice su una sola riga e non su 2 o più oppure nella pagina di update devo prelevarlo in modo che sia così
    codice:
    "
    
    linea 1 </P>"  +
    "
    
    linea 2  </P>"  +
    "
    
    linea 3 </P>"
    quindi con i " a inizio e fine e con il simbolo + alla fine o in qualsiasi altro modo, l'importante e che si riesca ad utilizzare la pagina di update!
    grazie a tutti e se non sono stato chiaro mi scuso e vi prego di segnalarmelo in modo che possa rispiegarvi meglio cosa c'è che non va!
    grazie a tutti!!

  2. #2
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Prova ad usare una textarea invece di un <input type="text">

    Perchè fai un ciclo while per recuperare i dati da una query che dovrebbe restituirti una sola riga? Basta applicare direttamente mysql_fetch_array e hai già quello che ti serve

  3. #3
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    84
    cambiando questo
    Codice PHP:
     <script type="text/javascript">
    var oFCKeditor = new FCKeditor('INS_ARTICOLO');
    oFCKeditor.BasePath = "../admin/Scripts/fckeditor/"; oFCKeditor.InstanceName = "INS_ARTICOLO"; 
    oFCKeditor.Value = "<?php echo"" $testo"";?>"; 
    oFCKeditor.Width = "650px"; oFCKeditor.Height = "400px"; 
    oFCKeditor.Create();
    </script></div>
    in questo

    Codice PHP:
     <script type="textarea/javascript">
    var oFCKeditor = new FCKeditor('INS_ARTICOLO');
    oFCKeditor.BasePath = "../admin/Scripts/fckeditor/"; oFCKeditor.InstanceName = "INS_ARTICOLO"; 
    oFCKeditor.Value = "<?php echo"" $testo"";?>"; 
    oFCKeditor.Width = "650px"; oFCKeditor.Height = "400px"; 
    oFCKeditor.Create();
    </script></div>
    ???
    perchè così facendo scompare il box dell'editor
    grazie 1000

  4. #4
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Scusa se te lo dico, ma qui ci vuole proprio un bel ripassino di HTML!

    Prova a cambiare
    Codice PHP:
    <div><input name="ttesto" type="text" value="<?php echo "$ttesto"?>"></div>
    in

    Codice PHP:
    <textarea rows="2" cols="20" name="ttesto">
    <?php echo "$ttesto"?>
    </textarea>
    Ultimo suggerimento: tutti quei div non servono a nulla! Buttali via ed inizia ad usare un html corretto (dai un'occhiata http://www.w3schools.com/tags/tag_label.asp)

  5. #5
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    84
    GRAZIE PER tutto lo so sono un po' arrugginito con l'html e codice in generale, ma quello che mi dici di cambiare
    Codice PHP:
    <div><input name="ttesto" type="text" value="<?php echo "$ttesto"?>"></div>
    è ilò campo per il titolo dell'articolo, non per il testo, il codice che identifica l'editor WYSIWYG del testo dell'articolo è
    Codice PHP:
     <script type="text/javascript">
    var oFCKeditor = new FCKeditor('INS_ARTICOLO');
    oFCKeditor.BasePath = "../admin/Scripts/fckeditor/"; oFCKeditor.InstanceName = "INS_ARTICOLO"; 
    oFCKeditor.Value = "<?php echo"" $testo"";?>"; 
    oFCKeditor.Width = "650px"; oFCKeditor.Height = "400px"; 
    oFCKeditor.Create();
    </script></div>
    grazie di tutto e grazie anche per il link che mi hai consigliato, lo leggerò di sicuro!

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Scusa, avevo letto male.

    Comunque è meglio un piccolo riassunto sugli editori WYSIWYG

    Una form html invia al server solo i suoi campi.
    Quindi (a meno di non usare espedienti particolari) devi avere una campo (una textarea) che il tuo editor WYSIWYG nasconde e sostituisce con il suo bel box e dal quale prende il testo.
    Al momento in cui fai l'invio o quando esci dal box, l'editor aggiorna la textarea.

    In questo modo tu invii i tuoi campi al server e la textarea contiene il testo che ti interessa.

    Trovi come integrarla nel tuo sito qui http://docs.cksource.com/CKEditor_3....de/Integration

    Mi pare che tu debba sostituire
    Codice PHP:
    oFCKeditor.Create(); 
    con
    Codice PHP:
    oFCKeditor.replace'editor1' ); 
    dove editor1 è il l'id che vuoi dare alla textarea
    Codice PHP:
    <textarea rows="2" cols="20" name="editor1">
    <?php echo "$testo"?>
    </textarea>

  7. #7
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    84
    ok provo e stassera ti faccio sapere
    grazie

  8. #8
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    84
    grazie Luke70 ora funziona!
    non so come ringraziarti!
    ciao

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.