Visualizzazione dei risultati da 1 a 6 su 6

Discussione: if in un parametro

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323

    if in un parametro

    Salve, ho questo codice... vi posto la classe e la sua funzione che dove vorrei mettere l'if per far che non perde il valore scritto ad ogni invio form.

    Codice PHP:
    <?php

    class Form
    {
        
        
        public function 
    form_open($method){
            return 
    '<form  method="'.$method.'">';
        }

        public function 
    form_label($name){
            return 
    '<label for="'.$name.'">'.$name.'</label> : ';
        }

        public function 
    form_input($type$name$placeholder){
            
            return 
    '<input type="'.$type.'" name="'.$name.'" id="'.$name.'" placeholder="'.$placeholder.'"">';
        }

        public function 
    form_textarea($name$placeholder){
                return 
    '<textarea name="'.$name.'" placeholder="'.$placeholder.'"></textarea>';
        }

        public function 
    form_button($type$text){
            
            return 
    '<input type="'.$type.'" value="'.$text.'">';
        }

        public function 
    form_close(){
            return 
    '</form>';
        }

        

    }
    qui quello che vorrei fare tralasciando alcune parte del codice sopra:

    Codice PHP:
    $nome = (isset($_POST["nome"])) ? trim(($_POST["nome"])): '';
    $cognome = (isset($_POST["cognome"])) ? trim(($_POST["cognome"])): '';
    $oggetto = (isset($_POST["oggetto"])) ? trim(($_POST["oggetto"])): '';
    $messaggio = (isset($_POST["messaggio"])) ? trim(($_POST["messaggio"])): '';
    $email = (isset($_POST["email"])) ? trim(($_POST["email"])): '';

    if(isset($error)){ echo '<p class="info_error">'.$error.'</p>';}
    if(isset($msg)){ echo $msg;} else {
        
        $form = new Form();
        echo $form->form_open('POST');
        echo $form->form_label('Nome');
        echo $form->form_input('text', 'nome', if(isset($_POST['nome'])){echo htmlspecialchars($_POST['nome']);}else { echo htmlspecialchars($nome); });
        echo $form->form_label('Cognome');
        echo $form->form_input('text', 'cognome', if(isset($_POST['cognome'])){echo htmlspecialchars($_POST['cognome']);}else { echo htmlspecialchars($cognome); });
        echo '<br/>';
        echo '<br/>';
        echo $form->form_button('submit', 'Invia');
        echo $form->form_close();
    ?>   
    <?php ?>
    mi da l'errore qui:
    Codice PHP:
        echo $form->form_input('text''nome', if(isset($_POST['nome'])){echo htmlspecialchars($_POST['nome']);}else { echo htmlspecialchars($nome); }); 
    il suo era cosi:
    Codice PHP:
     <p>Nome</p>
     <p><input type="text" name="nome"  value="<?php if(isset($_POST['nome'])){echo htmlspecialchars($_POST['nome']);}else { echo htmlspecialchars($nome); }?>" /></p>
    l'ultimo codice con l'html normale .. funziona.. ma lo vorrei mettere nella mia classe che ho fatto io.

    mi dite come fare?

    grazie mille.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    E l'errore quale sarebbe?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    eccolo:
    Parse error: syntax error, unexpected 'if' (T_IF)

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non credo che si possa usare un if come parametro, calcolati prima il valore da passare e metti quello nella chiamata alla funzione form_input()

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ok, fatto e grazie mille.

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Hai provato cosi ?

    form->form_input('text', 'nome', isset($_POST['nome']) ? htmlspecialchars($_POST['nome']):htmlspecialchars($nome));


    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

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.