Combo box de base de datos

Hola,
Mientras
esperaba su respuesta he logrado insertar el combo box y me muestra bien las
categorías, El problema es que al grabar me dice
Notice:
Undefined index: categoría in C:\wamp\www\sants\registronew.php on line 8
que hay
problemas y que hay un campo vacío que es el de categorías.
Necesitaría
que me moviera el id y no el nombre de la categoría.
Dejo aquí
los programas.
<?php
include ('conexión.php');
?>
<html>
<head>
<title> Formulario de registro</title>
</head>
<body>
<h1>Formulario de
registro</h1>
<h5>Los campos con (*) son
requeridos.</h5>
<form method="POST" action=""/>
<table>
<tr>
<td>
* Empresa:
</td>
<td>
<input type="name" name="empresa" />
</td>
</tr>
<tr>
<td>
Cif:
</td>
<td>
<input type="text"
name="cif" />
</td>
</tr>
<tr>
<td>
* Usuario:
</td>
<td>
<input type="text"
name="usuario" />
</td>
</tr>
<tr>
<td>
* Contraseña:
</td>
<td>
<input type="password"
name="passwd1" />
</td>
</tr>
<tr>
<td>
* Repetir Contraseña:
</td>
<td>
<input type="password"
name="rpass" />
</td>
</tr>
<tr>
<td>
* Categorías:
<?php include
("buscarcate.php");?>
</td>
</tr>
<tr>
<td>
Descripción:
</td>
<td>
<input type="text"
name="descripción" />
</td>
</tr>
</table>
<input type="submit"
name="submit" value="Registrarse" /> <input
type="reset"/>
</form>
<?php
if(isset($_POST['submit'])) {
include("registronew.php");
}
?>
</body>
------------------------------------------------------------------------
</html>
Registronew.php
<?php
$empresa = $_POST['empresa'];
echo $empresa;
$cif = $_POST['cif'];
$usuario = $_POST['usuario'];
$passwd1 = $_POST['passwd1'];
$reppass = $_POST['rpass'];
$categoría = $_POST['categoría'];
$descripción =
$_POST['descripción'];
$dirección = $_POST['dirección'];
$cod_postal =
$_POST['cod_postal'];
$población = $_POST['población'];
$provincia = $_POST['provincia'];
$teléfono = $_POST['teléfono'];
$fax = $_POST['fax'];
$móvil = $_POST['móvil'];
$mail = $_POST['mail'];
$web = $_POST['web'];
$horario = $_POST['horario'];
$reqlen = strlen($empresa) *
strlen($cif) * strlen($usuario) * strlen($passwd1) * strlen($reppass) *
strlen($categoría) * strlen($descripción) * strlen($dirección) *
strlen($cod_postal) *
strlen($población) * strlen($provincia) * strlen($teléfono) * strlen($fax) *
strlen($móvil) * strlen($mail) * strlen($web) *
strlen($horario);
if
($reqlen > 0) {
if ($passwd1 === $reppass) {
include ("conexión.php");
$passwd1 = md5($passwd1);
mysql_query("INSERT INTO dato_empresa
(empresa, cif, usuario, passwd1, idcategoria, descripción, dirección,
cod_postal, población, provincia, teléfono, fax, móvil, mail, web, horario) VALUES('$empresa', '$cif','$usuario',
'$passwd1', '$categoría'
, '$descripción',
'$dirección', '$cod_postal', '$población', '$provincia', '$teléfono', '$fax',
'$móvil',
'$mail',
'$web', '$horario')");
mysql_close($conexión);
echo
' se ha registrado exitosamente';
}else{
echo 'por favor, introduzca dos contraseñas identicas.';
}
} else {
echo 'por favor rellene todos los campos
requeridos.';
}
?>
-----------------------------------------------------------------------------
<?php
// Conectar
a la base de datos
include
('conexión.php');
// Consultar
la base de datos
$consulta_mysql='select * from
categorías';
$categoría=mysql_query($consulta_mysql,$conexión);
echo "<select
name='categorías'>";
while($fila=mysql_fetch_array($categoría)){
echo "<option
value='".$fila['id']."'>".$fila['categorías']."</option>";
}
echo
"</select>";
?>
En la espera
de sus noticias
Gracias y
cordiales saludos.

1 Respuesta

Respuesta
1

Es simple ese es un warning, solo ponle @ a cada variable de esta forma @$variable para que desaparezcan esos errores, aparecen debido a que cuando arrancas el archivo por defecto esas variables están vacías. Y el sistema cree que por estar vacías se declaraon pero no se usaron.

Bn en cuanto al id, no encontré el código donde cargas el combobox de categorías pero revisa que campo colocas en values recuerda que aquí indicas el valor que enviaras.

<select>

<option values="ID">Nombre Categoría</option>

</select>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas