Cita:
Iniciado por Marvin
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
<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" />
<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.