Visualizzazione risultati 1 fino 2 di 2

Discussione: problema ad impostare valore predefinito per form type 'file', e 'select'

  1. #1
    Guest

    Predefinito problema ad impostare valore predefinito per form type 'file', e 'select'

    volevo aggiungere la possibilità per me di vedere un'anteprima (quindi senza salvataggio nel db) dei post prima di inserirli nel blog...

    quindi quando premo su submit i dati del form vengono inviati al server e la pagina si dovrebbe ricaricare con i form vuoti...

    siccome in fase di anteprima non voglio che i form si svuotino perdendo di fatto il contenuto ho dato dei valori predefiniti (leggendoli dalle variabili $_post)

    con i campi textarea (che poi sono quelli con il contenuto più importante) non ho problemi, mentre il contenuto dell'input file e del select mi vanno persi...

    in realtà non è un dramma perchè ci metterei poco a reinserirli... ma non mi piace darla vinta al pc...

    io uso questo codice:

    Codice PHP:
    <!-- qui inserisco l'editor per i post -->
    <form enctype='multipart/form-data' action='http://www.stepone.altervista.org/blog.php?lower_bound=0' method='post'>

    <!-- textarea per il titolo del pos -->

    <?php
    echo " <p>";
    if (!empty(
    $_POST['titoloPost'])) {
    echo
    "<textarea name='titoloPost' style='width:340px; height:30px; overflow:hidden;'>".$_POST['titoloPost']."</textarea>";
    }
    else {
    echo
    "<textarea name='titoloPost' style='width:340px; height:30px; overflow:hidden;'>Inserire titolo</textarea>";
    }

    echo
    "</p>";

    echo
    "<p>";
    if (isset(
    $_FILES['filePOST'])) {
    $tmp = $_FILES['filePOST'];
    echo
    "<input type='file' value=$tmp name='filePOST' style='text-align:center; margin-top:0 auto;'> &nbsp; &nbsp;";
    }
    else {
    echo
    "<input type='file' name='filePOST' style='text-align:center; margin-top:0 auto;'>";
    }

    if (!empty(
    $_POST['categoria'])) {
    $tmp2 = $_POST['categoria'];
    echo
    "<select name='categoria' style='width:160px; margin:0 auto;' value=$tmp2>";
    echo
    "<option>Generale</option><option>Project: Forum</option><option>Internet</option><option>Web Design</option><option>Sport</option><option>Cinema</option><option>Videogame</option></select>";
    }
    else {
    echo
    "<select name='categoria' style='width:160px; margin:0 auto;'>";
    echo
    "<option>Generale</option><option>Project: Forum</option><option>Internet</option><option>Web Design</option><option>Sport</option><option>Cinema</option><option>Videogame</option></select>";
    }
    echo
    "</p>";

    /*<!-- textarea per il post -->
    <!-- The name and id of textarea can be any name you prefer but dont change the class.
    You should also specify class=”ed” inside textarea tag. This style is coded in styles.css -->*/

    echo"<script>edToolbar('mytxtarea'); </script>";

    if (!empty(
    $_POST['mytxtarea'])) {
    echo
    "<textarea name='mytxtarea' id='mytxtarea' class='ed' style='padding-top:20px;'>".$_POST['mytxtarea']."</textarea>";
    }
    else {
    echo
    "<textarea name='mytxtarea' id='mytxtarea' class='ed' style='padding-top:20px;'> </textarea>";
    }
    //<!-- Note: Make sure that the id value and the value inside of edToolbar() is same. -->
    //<!-- The default height and width of text area is specified in styles.css. It is 400px width and 150 height. -->
    ?>
    <p>
    <input type='radio' name='wannaDo' value='publish' /> Pubblica
    <input type='radio' name='wannaDo' value='preview' /> Anteprima
    <input type="submit" name="Submit" value="Invia!">
    </p>
    </form>


    <?php

    include_once("./php_script/insert_post.php");
    include_once(
    "./php_script/class.upload_post.php");

    if (!empty(
    $_POST['titoloPost']) && !empty($_POST['mytxtarea']) && !empty($_POST['categoria'])) {
    if (
    $_POST['wannaDo'] == 'publish') {
    $postObj = new insertPost($_POST['titoloPost'],$_POST['mytxtarea'],$_POST['categoria']);
    $news = $postObj->addPost();
    echo
    $news;
    }
    if (
    $_POST['wannaDo'] == 'preview') {
    $title = $_POST['titoloPost'];
    $cat = $_POST['categoria'];
    $txt = $_POST['mytxtarea'];

    echo
    "Anteprima Post: <br />";
    echo
    $title.'<br />';
    echo
    $cat.'e <br />'.$txt;

    }
    }

    $max_file_size = 512000;
    $image_type = array('jpeg', 'jpg', 'png', 'gif', 'bmp');

    //if(isset($_FILES['file']) && !empty($_POST['titoloPost'])) {
    if (!empty($_FILES['filePOST']) && !empty($_POST['titoloPost'])) {
    $obj = new uploadPost($_FILES['filePOST'],"./images/topic/",$max_file_size,$image_type,$_POST['titoloPost']);
    $advice = $obj->getError();
    if (
    $advice != '') {
    echo
    "<p class='result'>".$advice."</p>";
    }
    }
    ?>
    fate quindi in particolare attenzione ai form file, e select...

    secondo voi perchè dopo che clicco submit, con il radiobutton puntato su preview vanno persi i valori dei form file e select?

    grazie in anticipo

  2. #2
    Guest

    Predefinito

    Potresti fare così:

    Codice HTML:
    <select name="prova">
    <option value="blabla">blabla</option>
    <option value="as12">as12</option>
    </select>
    nel php:

    Codice PHP:
    <?

    BLABLABLA
    $selectscelto
    = $_POST['prova'];

    echo
    "<select name='prova'><option value='$selectscelto' selected>$selectscelto</option>";
    ?>

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •