Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    6

    Cerco delle dritte e aiuto per collegare una colonna del database all menu di selezione

    Buonasera.

    Vorrei capire come fare a collegare le colonne, del database mysql alle seguenti righe di codice.
    codice:
    <select onchange="addtext(this.value);">
    <option value="">-- Seleziona --</option>
    <option value=""></option> <!-- Nel value dovrebbe andarci il link del sito e tra i tag option il nome del sito -->
    </select>

    Se è possibile, il valore del link sito, dovrebe comparire tra i tag della textarea e il nome, che compare tra i tag option, dovrebbe comparire nell'input nome.
    Inserisco il codice completo della pagina.

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8"/>
    <meta http-equiv="cache-control" content="no-cache"/>
    <meta http-equiv="expires" content="0"/>
    <meta http-equiv="pragma" content="no-cache"/>
    <meta http-equiv="expires" content="-1"/>
    <meta name="robots" content="none,noindex"/>
    <script language="javascript" type="text/javascript">
    function addtext(txt)
    {
    var string = txt.replace(/(\r)/g, '\n')    ;
    var string2 = string.split('|');    
    var id = (string2[0]); 
    var nome = (string2[1]);
    var codice = (string2[2]); 
    document.getElementById("textarea").value = codice;
    document.getElementById("id").value = id;
    document.getElementById("nome").value = nome;
    }
    </script>
    </head>
    <body>
    <center> <!-- Inizio centratura tabella contenitore modifica preset -->
    <table id="table_modifica_preset" border="1"> <!-- Inizio tabella contenitore modifica preset -->
    <tr>
    <td height="27px" align="center">
    <b>Modifica link nel database della lista preset</b>
    </td>
    </tr>
    <tr>
    <td>
    <center> <!-- Inizio centratura tabella contenitore form modifica preset -->
    <table id="table_form_modifica_preset" border="0"> <!-- Inizio tabella contenitore form modifica preset -->
    <form name="form" id="form" action="modifica_preset.php" method="post"> <!-- Inizio form modifica preset -->
    <tr>
    <td height="27px" align="center"><b>Seleziona, dalla lista preset, che file modificare</b></td>
    </tr>
    <tr>
    <td align="center" valign="top"><b>Lista Preset</b></td>
    <td colspan="2" valign="top">
    <select onchange="addtext(this.value);">
    <option value="">-- Seleziona --</option>
    <option value=""></option> <!-- Nel value dovrebbe andarci il link del sito e tra i tag option il nome del sito -->
    </select>
    </td>
    </tr>
    <tr>
    <td align="right">Nome&nbsp;</td>
    <td colspan="2">
    <input id="nome" type="text" name="nome"> <!-- Deve comparire lo stesso nome del tag option di sopra -->
    </td>
    </tr>
    <tr>
    <td align="right">Link sito&nbsp;</td>
    <td colspan="2">
    <textarea id="textarea" name="codice" rows="3" cols="60"></textarea> <!-- Tra i tag textarea, deve comparire il link del sito del campo value -->
    </td>
    </tr>
    <input id="id" type="hidden" name="id" value="">
    <tr>
    <td></td>
    <td>
    <input type="reset" value="Cancella">
    <input type="submit" name="aggiungi" value="Aggiungi">
    <input type="submit" name="modifica" value="Modifica">
    <input type="submit" name="elimina" value="Elimina" onclick="return confirm('Vuoi realmente CANCELLARE ? \nIl processo &egrave; irreversibile! \n\nPensaci bene.');">
    </td>
    </tr>
    </form> <!-- Fine form modifica preset -->
    </table> <!-- Fine tabella contenitore form modifica preset --> 
    </center> <!-- Fine centratura tabella contenitore form modifica preset -->
    </td>
    </tr>
    </table> <!-- Fine tabella contenitore modifica preset -->
    </center> <!-- Fine centratura tabella contenitore modifica preset -->
    </body>
    </html>

    Come ultima cosa vorrei capire se è possibile, con un solo file php, aggiungere nuovi valori al database, modificare un valore già presente nello stesso ed eliminare un determinato valore selezionato con il menu di selezione.

    Grazie in anticipo a chiunque mi risponde

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Cominciamo così: sai come collegarti ad un database usando php e recuperare i dati in esso contenuti?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    6
    Penso di si

    L'ho scritto al volo

    codice:
    <?php
        //Definisco:
        
        // Il nome dell'host (hostname) su cui si trova mysql
        $host = "localhost";
        
        // Il nome del nostro database
        $name = "my_database";
        
        // Il nostro nome utente (username)
        $username = "username";
        
        // La nostra password
        $password = "pass";
        
        //Mi connetto al server mysql
        $connessione = @mysql_connect($host, $username, $password) or die ("Impossibile stabilire una connessione");
        
        //Mi connetto al database specificato nella variabile $nomedb
        $data_base= @mysql_select_db($name, $connessione) or die ("Impossibile selezionare il database");
        
        // Impostiamo la codifica della connessione
        mysql_set_charset('utf8'); // attenzione è 'utf8' NON 'utf-8'
    ?>

    codice:
    //query per inserire valore
    $query = "INSERT INTO preset (id, nome, link_sito) VALUES (NULL , '$nome', '$codice')";
    if (@mysql_query($query))
    {
    echo ("<b>Record inserito con successo.</b>");
    }
    else
    {
    echo ("<b>Errore di inserimento record: " .mysql_error(). "</b>");
    }
    mysql_close();
    
    //query per modificare
    $query = "UPDATE preset SET link_sito='$codice' WHERE nome='$nome'";
    
    if (@mysql_query($query))
    {
    echo ("<b>Record modificato con successo.</b>");
    }
    else
    {
    echo ("<b>Errore modifica record: " .mysql_error(). "</b>");
    }
    mysql_close();
    
    //query per eliminare
    $query = "DELETE FROM preset WHERE nome='$nome'";
    if (@mysql_query($query))
    {
    echo ("<b>Record cancellato con successo.</b>");
    }
    else
    {
    echo ("<b>Errore eliminazione record: " .mysql_error(). "</b>");
    }
    mysql_close();

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Hai scritto tutto tranne una query per recuperare dati dal db, che è quella che ti serve.
    Devi eseguire una SELECT recuperando i dati che vuoi mettere nel menu a tendina.
    Una volta recuperati basta un ciclo foreach che li metta uno ad uno nei tag <option>

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    6
    Grazie per la tua pazienza Alhazred.

    Questo codice dovrebbe ricercare i dati nella colonna link_sito

    codice:
    //query recupero dati
    $query = "SELECT link_sito FROM preset";
    
    if (@mysql_query($query))
    {
    echo ("<b>Record modificato con successo.</b>");
    }
    else
    {
    echo ("<b>Errore modifica record: " .mysql_error(). "</b>");
    }
    mysql_close();

    Nel frattempo, ho provato a fare una cosa così:

    codice:
    <?php 
    include('config_access_database.php');   
    
    $query = "SELECT nome FROM preset";   
    
    $result = mysql_query($query);   
    
    $num = mysql_num_rows($result);   
    
    mysql_close(); 
    ?> 
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf8"/>
    <meta http-equiv="cache-control" content="no-cache"/>
    <meta http-equiv="expires" content="0"/>
    <meta http-equiv="pragma" content="no-cache"/>
    <meta http-equiv="expires" content="-1"/>
    <meta name="robots" content="none,noindex"/>
    
    <script language="javascript" type="text/javascript">
    function addtext(txt)
    {
    var string = txt.replace(/(\r)/g, '\n')    ;
    var string2 = string.split('|');    
    var id = (string2[0]); 
    var nome = (string2[1]);
    var codice = (string2[2]); 
    document.getElementById("textarea").value = codice;
    document.getElementById("id").value = id;
    document.getElementById("nome").value = nome;
    }
    </script>
    </head>
    <body>
    <center> <!-- Inizio centratura tabella contenitore modifica preset -->
    <table id="table_modifica_preset" border="1"> <!-- Inizio tabella contenitore modifica preset -->
    <tr>
    <td height="27px" align="center">
    <b>Modifica link nel database della lista preset</b>
    </td>
    </tr>
    <tr>
    <td>
    <center> <!-- Inizio centratura tabella contenitore form modifica preset -->
    <table id="table_form_modifica_preset" border="0"> <!-- Inizio tabella contenitore form modifica preset -->
    <form name="form" id="form" action="modifica_preset.php" method="post"> <!-- Inizio form modifica preset -->
    <tr>
    <td height="27px" align="center"><b>Seleziona, dalla lista preset, che file modificare</b></td>
    </tr>
    <tr>
    <td align="center" valign="top"><b>Lista Preset</b></td>
    <td colspan="2" valign="top">
    <?
    echo "  <select  onchange=\"addtext(this.value);\" name='db'>\n";
    echo "  <option value=\"\">-- Seleziona --</option>\n";
    while( $row = mysql_fetch_row( $result ))
    {   
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";   
    printf    ( "<option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );   
    }   
    echo "  </select>\n";   
    ?>
    
    <!--<select onchange="addtext(this.value);">
    <option value="">--seleziona--</option>
    <option value="link dalla colonna link_sito">nome dalla colonna nome</option>
    </select>-->
    
    </td>
    </tr>
    <tr>
    <td align="right">Nome&nbsp;</td>
    <td colspan="2">
    <input id="nome" type="text" name="nome"> <!-- nome dalla colonna nome -->
    </td>
    </tr>
    <tr>
    <td align="right">Codice&nbsp;</td>
    <td colspan="2">
    <textarea id="textarea" name="codice" rows="3" cols="60"></textarea><!-- link dalla colonna link_sito -->
    </td>
    </tr>
    <input id="id" type="hidden" name="id" value="">
    <tr>
    <td></td>
    <td>
    <input type="reset" value="Cancella">
    <input type="submit" name="aggiungi" value="Aggiungi">
    <input type="submit" name="modifica" value="Modifica">
    <input type="submit" name="elimina" value="Elimina" onclick="return confirm('Vuoi realmente CANCELLARE ? \nIl processo &egrave; irreversibile! \n\nPensaci bene.');">
    </td>
    </tr>
    </form> <!-- Fine form modifica preset -->
    </table> <!-- Fine tabella contenitore form modifica preset --> 
    </center> <!-- Fine centratura tabella contenitore form modifica preset -->
    </td>
    </tr>
    </table> <!-- Fine tabella contenitore modifica preset -->
    </center> <!-- Fine centratura tabella contenitore modifica preset -->
    </body>
    </html>

    Però non riesco andare avanti. Il campo nome compare giustamente nel menù a tendina lista preset. Quando seleziono un nome, sia nell'input nome che nella textarea codice, compare scritto: unefined

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2013
    Messaggi
    6
    Rieccomi.

    Con le modifiche effettuate al codice, sono riuscito a visualizzare il nome nell'input nome e il link nella textarea.


    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">    
    <head>    
    <meta http-equiv="Content-Type" content="text/html; charset=utf8"/>
    <meta http-equiv="cache-control" content="no-cache"/>
    <meta http-equiv="expires" content="0"/>
    <meta http-equiv="pragma" content="no-cache"/>
    <meta http-equiv="expires" content="-1"/>
    <meta name="robots" content="none,noindex"/>    
    <script language="javascript" type="text/javascript">
    function addtext(txt)
    {
    var string = txt.replace(/(\r)/g, '\n')    ;
    var string2 = string.split('|');    
    var id = (string2[0]); 
    var nome = (string2[1]);
    var codice = (string2[2]); 
    document.getElementById("textarea").value = codice;
    document.getElementById("id").value = id;
    document.getElementById("nome").value = nome;
    }
    </script>
    </head>
    <body>    
    <center> <!-- Inizio centratura tabella contenitore modifica preset -->
    <table id="table_modifica_preset" border="1"> <!-- Inizio tabella contenitore modifica preset -->
    <tr>
    <td height="27px" align="center">
    <b>Modifica link nel database della lista preset</b>
    </td>
    </tr>
    <tr>
    <td>
    <center> <!-- Inizio centratura tabella contenitore form modifica preset -->
    <table id="table_form_modifica_preset" border="1"> <!-- Inizio tabella contenitore form modifica preset -->
    <form name="form" id="form" action="modifica_preset.php" method="post"> <!-- Inizio form modifica preset -->
    <tr>
    <td width="105px" align="right">Lista Preset</td>
    <td align="left" width="200px">
    <select name="preset" onchange="addtext(this.value);">
    <option value="">-- Seleziona --</option>
    <?php
    include 'config_access_database.php';
    
    //Seleziona i record da aggiungere al menù di selezione
    $query = 'SELECT nome, codice FROM preset';
    
    $result = mysql_query($query) or die (mysql_error ());
    
    //Popola le opzioni della select con i risultati
    while ($row = mysql_fetch_assoc($result))
    {    
    if ($row['codice'] == $preset)
    {
    echo '<option value="' .$row['codice']. '">';
    }
    else
    {
    echo '<option value="' .$row['codice']. '">';
    }
    echo $row['nome']. '</option>';
    }
    ?>
    </select>
    </td>
    </tr>
    <tr>
    <td align="right">Nome&nbsp;</td>
    <td align="left">
    <input id="nome" type="text" name="nome"> <!-- nome dalla colonna nome -->
    </td>
    </tr>
    <tr>
    <td align="right">Codice&nbsp;</td>
    <td align="left">
    <textarea id="textarea" name="codice" rows="3" cols="60"></textarea><!-- link dalla colonna link_sito -->
    </td>
    </tr>
    <input id="id" type="hidden" name="id" value="">
    <tr>
    <td></td>
    <td align="left">
    <input type="reset" value="Cancella">
    <input type="submit" name="aggiungi" value="Aggiungi">
    <input type="submit" name="modifica" value="Modifica">
    <input type="submit" name="elimina" value="Elimina" onclick="return confirm('Vuoi realmente CANCELLARE ? \nIl processo &egrave; irreversibile! \n\nPensaci bene.');">
    </td>
    </tr>
    </form> <!-- Fine form modifica preset -->
    </table> <!-- Fine tabella contenitore form modifica preset --> 
    </center> <!-- Fine centratura tabella contenitore form modifica preset -->
    </td>
    </tr>
    </table> <!-- Fine tabella contenitore modifica preset -->
    </center> <!-- Fine centratura tabella contenitore modifica preset -->
    </body>
    </html>

    Poi con questo codice, aggiungo i nuovi link se premo il bottone aggiungi:


    codice:
    <?php
    // Connessione al database
    include('config_access_database.php');
    
    if(isset($_POST['aggiungi']))
    {
    // Processo recupero dati
    $id = $_POST['id'];
    $nome = $_POST['nome'];
    $nome = addslashes(stripslashes($nome));
    $codice = $_POST['codice'];
    $codice = addslashes(stripslashes($codice));
    
    $query = "INSERT INTO preset (id, nome, codice) VALUES (NULL , '$nome', '$id|$nome|$codice')";
    
    if (@mysql_query($query))
    {
    echo ("<b>Record inserito con successo.</b>");
    }
    else
    {
    echo ("<b>Errore di inserimento record: " .mysql_error(). "</b>");
    }
    mysql_close();
    }
    ?>

    Poi con questo codice, elimina il record, se premo il bottone elimina:


    codice:
    <?php
    // Connessione al database
    include('config_access_database.php');
    
    if(isset($_POST['elimina']))
    {
    // Processo recupero dati
    $id = $_POST['id'];
    $nome = $_POST['nome'];
    $nome = addslashes(stripslashes($nome));
    $codice = $_POST['codice'];
    $codice = addslashes(stripslashes($codice));
    
    $query = "DELETE FROM preset WHERE id='$id' OR nome='$nome' OR codice='$codice'";
    
    if (@mysql_query($query))
    {
    echo ("<b>Record cancellato con successo.</b>");
    }
    else
    {
    echo ("<b>Errore eliminazione record: " .mysql_error(). "</b>");
    }
    mysql_close();
    }
    ?>

    Ora mi manca la parte di modifica.
    Con questo codice, se modifico il link e non il nome, la modifica viene effettuata. Se invece modifico il nome e lascio invariato il link, la modifica non avviene.


    codice:
    <?php
    // Connessione al database
    include('config_access_database.php');
    
    if(isset($_POST['modifica']))
    {
    // Processo recupero dati
    $id = $_POST['id'];
    $nome = $_POST['nome'];
    $nome = addslashes(stripslashes($nome));
    $codice = $_POST['codice'];
    $codice = addslashes(stripslashes($codice));
    
    $query = "UPDATE preset SET codice='$codice' WHERE nome='$nome'";
    
    if (@mysql_query($query)) or die ("<b>Errore modifica record: " .mysql_error(). "</b>");
    {
    echo ("<b>Record modificato con successo.</b>");
    }
    else
    
    mysql_close();
    }    
    ?>

    Potete aiutarmi?
    Non so che parte aggiungere.
    Grazie di nuovo

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.