Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Interfacce utenti personalizzate

    Raga ho fatto uno script che mi mette a secondo della scelta dell'utente un foglio di style differente , ma mi da due errore

    1) non carica nella form i file css
    2) mi da un notice

    Notice: Undefined index: style in C:\xampp\htdocs\trucchiphp\index.php on line 13

    Questo è lo script molto semplice
    codice:
    <!DOCTYPE html>
    
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <?php
            $style = "default";
            if($_GET['style'])
                
                $style =$_GET['style'];
            
            $files= array();
            $dh = opendir("styles");
            while($file = @readdir($dh)){
                
                if(preg_match("/[.]css$/", "", $file))
                {
                    $file = preg_replace("/[.]css$/", "", $file);
                    $files []= $file;
                }
            }
            
            ?>
            <style type="text/css" media="all">@import url(styles/<?php echo ($style);?>.css);</style>
        </head>
        <body>
            <table width="800px">
                <tr>
                    <td width='200px' class="menu" valign='top'>
                        
                        <div class="menu-active"><a href="home.php">Home</a></div>
                        <div class="menu-inactive"><a href="faq.php">faq</a></div>
                        <div class="menu-inactive"><a href="contact.php">contatti</a></div>
                    </td>
                    <td width='600px'  valign='top'>
                        
                        <table class="box">
                            <tr>
                                <td class="box-title">
                                    
                                    Importanti informazioni
                                </td>
                                
                            </tr>
                            
                            <tr>
                                <td class="box-content">
                                    
                                    lots of information about important events and stuff
                                </td>
                                
                            </tr>
    
    
                        </table>  
    
    
                    </td>
                </tr>
                
            </table>
            
            <form>
                Style:<select name="style">
                    <?php                        
                     foreach ($files as $file){?>
                    <option value="<?=($file);?>"
                            <?=($file==$style ? "selected":"");?>>
                    <?=($file);?>
                    </option>
                   <?php } ?> 
                     
                    
                    
                </select>
                <input type="submit" value="Select">
            </form>
        </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Rimpiazza

    Codice PHP:
            $style "default";
            if(
    $_GET['style'])           
               
    $style =$_GET['style']; 
    con
    Codice PHP:
            $style = isset($_GET['style']) ? $_GET['style'] : "default"
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    Il notice te l oda sicuramente quando non metti nessuno style giusto? al posto di quel semplice if devi mettere if(isset($_GET['style'])) ovvero controli se è settato style.
    Per quanto riguarda il form: non saprei, ci deve essere qualche problema con tutti queli apici, usa l'echo che è meno confusionario:
    Codice PHP:
    <form> 
     Style:<select name="style">
     <?php
     
    foreach ($files as $file){
    echo 
    "<option value='".$file."' ";
    if(
    $file==$style){
    echo 
    "selected";
    }
    echo 
    ">".$file."</option>";
    }
     
    ?>
    </select>
    Adesso non so se la variabile $file si usi in questo modo in quanto non ho mai lavorato con i file, se non si usa quello puoi usare la funzione che visualizza il nome del file.


    EDIT: ogni volta che scrivo c'è sempre qualcuno che risponde mentre sto rispondendo

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da Disema Visualizza il messaggio
    EDIT: ogni volta che scrivo c'è sempre qualcuno che risponde mentre sto rispondendo
    Mi succede spesso.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Ragazzi grazie per le risposte, allora mettendo if ho risolto per notice, ma cmq la select non carica i file

    <!DOCTYPE html><!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <?php
    $style = isset($_GET['style']) ? $_GET['style'] : "default";

    $files= array();
    $dh = opendir("styles");
    while($file = @readdir($dh)){

    if(preg_match("/[.]css$/", "", $file))
    {
    $file = preg_replace("/[.]css$/", "", $file);
    $files []= $file;
    }
    }

    ?>
    <style type="text/css" media="all">@import url(styles/<?php echo ($style);?>.css);</style>
    </head>
    <body>
    <table width="800px">
    <tr>
    <td width='200px' class="menu" valign='top'>

    <div class="menu-active"><a href="home.php">Home</a></div>
    <div class="menu-inactive"><a href="faq.php">faq</a></div>
    <div class="menu-inactive"><a href="contact.php">contatti</a></div>
    </td>
    <td width='600px' valign='top'>

    <table class="box">
    <tr>
    <td class="box-title">

    Importanti informazioni
    </td>

    </tr>

    <tr>
    <td class="box-content">

    lots of information about important events and stuff
    </td>

    </tr>



    </table>




    </td>
    </tr>

    </table>

    <form>
    Style:<select name="style">
    <?php
    foreach ($files as $file){?>
    <option value="<?php ($file);?>"
    <?php ($file==$style ? "selected":"");?>>
    <?php ($file);?>
    </option>
    <?php } ?>



    </select>
    <input type="submit" value="Select">
    </form>
    </body>
    </html>


  6. #6
    Utente di HTML.it L'avatar di Disema
    Registrato dal
    Sep 2014
    Messaggi
    63
    ho cercato su w3school, e da quanto ho capito con:
    Codice PHP:
    <option value="<?php ($file);?>"
    non fai nulla, cioè almeno servirebbe un echo e comunque non so se ti restituisce il nome, quindi devi usare qeusta funzione:
    Codice PHP:
    basename($file
    ovviamente con un echo, però non ti ritorna l'estensione quindi nel value devi aggiungerla in questo modo:
    Codice PHP:
    basename($file,".css"

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.