Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/05/2009, 11:39
denica001
 
Fecha de Ingreso: octubre-2008
Mensajes: 387
Antigüedad: 15 años, 6 meses
Puntos: 18
Respuesta: Ayuda con validacion de formulario

Cita:
Iniciado por Marvin Ver Mensaje
Si... bien extraño... a ver tirate el codigo del formulario aca para revisarlo.
Ok, pero de todos modos casi les diria con seguridad que es un problema de configuracion porque en el tutorial dejan un repositorio con todos los archivos del proyecto ya terminado (o sea exactamente identico a como lo vienen trabajando en el tutorial), y asi y todo a mi no me funciona.

Les dejo el codigo del formulario completo. El formulario es de esos que se referencian a si mismos cuando se submiten y las validaciones las hacen al tope de la pagina.

Muchas Gracias.

Código PHP:
<?php require_once("includes/connection.php"); ?>
<?php 
require_once("includes/functions.php"); ?>
<?php
        
if (intval($_GET['subj']) == 0) {
            
redirect_to("content.php");
        }
        if (isset(
$_POST['submit'])) {
            
$errors = array();

            
$required_fields = array('menu_name''position''visible');
            foreach(
$required_fields as $fieldname) {
                if (!isset(
$_POST[$fieldname]) || (empty($_POST[$fieldname]) && $_POST[$fieldname]!=0)) { 
                    
$errors[] = $fieldname
                }
            }
            
$fields_with_lengths = array('menu_name' => 30);
            foreach(
$fields_with_lengths as $fieldname => $maxlength ) {
                if (
strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) { $errors[] = $fieldname; }
            }
            
            if (empty(
$errors)) {
                
// Perform Update
                
$id mysql_prep($_GET['subj']);
                
$menu_name mysql_prep($_POST['menu_name']);
                
$position mysql_prep($_POST['position']);
                
$visible mysql_prep($_POST['visible']);
                
                
$query "UPDATE subjects SET 
                            menu_name = '{$menu_name}', 
                            position = {$position}, 
                            visible = {$visible} 
                        WHERE id = {$id}"
;
                
$result mysql_query($query$connection);
                if (
mysql_affected_rows() == 1) {
                    
// Success
                    
$message "The subject was successfully updated.";
                } else {
                    
// Failed
                    
$message "The subject update failed.";
                    
$message .= "<br />"mysql_error();
                }
                
            } else {
                
// Errors occurred
                
$message "There were " count($errors) . " errors in the form.";
            }
            
            
            
            
        } 
// end: if (isset($_POST['submit']))
?>
<?php find_selected_page
(); ?>
<?php 
include("includes/header.php"); ?>
<table id="structure">
    <tr>
        <td id="navigation">
            <?php echo navigation($sel_subject$sel_page); ?>
        </td>
        <td id="page">
            <h2>Edit Subject: <?php echo $sel_subject['menu_name']; ?></h2>
            <?php if (!empty($message)) {
                echo 
"<p class=\"message\">" $message "</p>";
            } 
?>
            <?php
            
// output a list of the fields that had errors
            
if (!empty($errors)) {
                echo 
"<p class=\"errors\">";
                echo 
"Please review the following fields:<br />";
                foreach(
$errors as $error) {
                    echo 
" - " $error "<br />";
                }
                echo 
"</p>";
            }
            
?>
            <form action="edit_subject.php?subj=<?php echo urlencode($sel_subject['id']); ?>" method="post">
                <p>Subject name: 
                    <input type="text" name="menu_name" value="<?php echo $sel_subject['menu_name']; ?>" id="menu_name" />
                </p>
                <p>Position: 
                    <select name="position">
                        <?php
                            $subject_set 
get_all_subjects();
                            
$subject_count mysql_num_rows($subject_set);
                            
// $subject_count + 1 b/c we are adding a subject
                            
for($count=1$count <= $subject_count+1$count++) {
                                echo 
"<option value=\"{$count}\"";
                                if (
$sel_subject['position'] == $count) {
                                    echo 
" selected";
                                } 
                                echo 
">{$count}</option>";
                            }
                        
?>
                    </select>
                </p>
                <p>Visible: 
                    <input type="radio" name="visible" value="0"<?php 
                    
if ($sel_subject['visible'] == 0) { echo " checked"; } 
                    
?> /> No
                    &nbsp;
                    <input type="radio" name="visible" value="1"<?php 
                    
if ($sel_subject['visible'] == 1) { echo " checked"; } 
                    
?> /> Yes
                </p>
                <input type="submit" name="submit" value="Edit Subject" />
                &nbsp;&nbsp;
                <a href="delete_subject.php?subj=<?php echo urlencode($sel_subject['id']); ?>" onclick="return confirm('Are you sure?');">Delete Subject</a>
            </form>
            <br />
            <a href="content.php">Cancel</a>
            <div style="margin-top: 2em; border-top: 1px solid #000000;">
                <h3>Pages in this subject:</h3>
                <ul>
<?php 
    $subject_pages 
get_pages_for_subject($sel_subject['id']);
    while(
$page mysql_fetch_array($subject_pages)) {
        echo 
"<li><a href=\"content.php?page={$page['id']}\">
        {$page['menu_name']}</a></li>"
;
    }
?>
                </ul>
                <br />
                + <a href="new_page.php?subj=<?php echo $sel_subject['id']; ?>">Add a new page to this subject</a>
            </div>
        </td>
    </tr>
</table>
<?php require("includes/footer.php"); ?>
Les dejo la imagen de como se ve el formulario en la web. El campo que me esta dando problemas al validar es el que esta labelado como "Subject name". Cuando lo envio con este campo vacio, me tira un error de validacion ya que considera que vacio es igual a 0.