Foros del Web » Programando para Internet » PHP »

Problema con para ingresar formulario

Estas en el tema de Problema con para ingresar formulario en el foro de PHP en Foros del Web. Hola de nuevo, Pues esta vez tengo el siguiente problema: Tengo un formulario: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < script language = "javascript" type ...
  #1 (permalink)  
Antiguo 02/01/2011, 14:18
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Problema con para ingresar formulario

Hola de nuevo,

Pues esta vez tengo el siguiente problema:

Tengo un formulario:

Código HTML:
Ver original
  1. <script language="javascript" type="text/javascript">
  2. function d1(selectTag){
  3.  if(selectTag.value == 'normal'){
  4. document.getElementById('horas').disabled = false;
  5. document.getElementById('minutos').disabled = false;
  6.  }else{
  7. document.getElementById('horas').disabled = true;
  8. document.getElementById('minutos').disabled = true;
  9.  }
  10.  if(selectTag.value == 'multimedia'){
  11. document.getElementById('diafin').disabled = false;
  12. document.getElementById('mesfin').disabled = false;
  13. document.getElementById('aniofin').disabled = false;
  14.  
  15.  }else{
  16.  document.getElementById('diafin').disabled = true;
  17.  document.getElementById('mesfin').disabled = true;
  18. document.getElementById('aniofin').disabled = true;
  19.  }
  20. }
  21.  
  22. <form action="..." method="post" OnSubmit="return valida(this)">
  23. <label><b>Categoría</b> <select id="categoria" name="categoria" onchange="d1(this)">
  24. <option SELECTED value="">Selecciona una categoría
  25. <option value="normal">Evento Programado o espontáneo
  26. <option value="multimedia">Evento Multimedia
  27. <br>
  28. <label><b>Nombre de tu Evento:</b> <input id="nombre" type="text" name="nombre" /></label><br>
  29. <br>
  30. <label><b>Link:</b> <input id="link" type="text" name="link" /></label><br>
  31. <br>
  32. <b>Fecha</b> <i>(Fecha de Inicio)</i>: <SELECT id="dia" name="dia">
  33. <option value="0">Día</option>
  34. dias~
  35. </SELECT> <SELECT id="mes" name="mes">
  36. meses~
  37. </SELECT> <SELECT id="anio" name="anio">
  38. <option value="0">Año</option>
  39. <option>2010</option>
  40. <option>2011</option></SELECT><br>
  41. <br>
  42. <b>Fecha de Finalización:</b> <SELECT disabled="true" id="diafin" name="diafin">
  43. <option value="0">Día</option>
  44. dias~
  45. </SELECT> <SELECT disabled="true" id="mesfin" name="mesfin">
  46. meses~
  47. <option>12</option></SELECT> <SELECT disabled="true" id="aniofin" name="aniofin">
  48. <option value="0">Año</option>
  49. <option>2010</option>
  50. <option>2011</option></SELECT><br>
  51. <br>
  52. <b>Hora:</b> <input type="text" maxlength="2" size="2" disabled="true" name="horas" id="horas"> : <input type="text" maxlength="2" size="2" disabled="true" name="minutos" id="minutos"> (Hora Perú)<br>
  53. <br>
  54. <label><b>Organizador:</b> <input type="text" name="organizador" id="organizador" value="<?php echo $user->data['username']; ?>" readonly="readonly"></label><br>
  55.                           <br>
  56. <br><input type="submit" name="submit" value="Enviar" />
  57. </form>

Lo que hace básicamente es activar los campos horas y minutos si se selecciona el value normal como categoria. Si se selecciona multimedia activa los campos diafin, mesfin, aniofin. De esa forma, los eventos de categoria normal cuentan con una hora fijada (sin fecha de finalización), y los multimedia con una fecha de finalización (sin hora).

Pues bien, al seleccionar multimedia y enviar el formulario los datos se ingresan perfectamente. Pero al elegir normal (es decir, ingresar una hora) me sale el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '-', , '-', )),'normal')' at line 1

realizo la sintaxis de la siguiente manera:

Código PHP:
Ver original
  1. $query = "INSERT INTO eventos (nombre,link,fecha,horas,minutos,organizador,fecha_fin,categoria) values ('{$_POST['nombre']}','{$_POST['link']}',DATE(CONCAT({$_POST['anio']},  '-', {$_POST['mes']},  '-', {$_POST['dia']})),'{$_POST['horas']}','{$_POST['minutos']}','{$_POST['organizador']}',DATE(CONCAT({$_POST['aniofin']}, '-', {$_POST['mesfin']}, '-', {$_POST['diafin']})),'{$_POST['categoria']}')";

Espero su ayuda, gracias desde ya.
  #2 (permalink)  
Antiguo 02/01/2011, 14:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con para ingresar formulario

pues lo único que se alcanza a notar, es que no aparece ningún valor en algunas partes de tu consulta...
Cita:
'-', ??? , '-', )),'normal')
supongo que ya habías dado cuenta, la forma de solventarlo es que o condicionas la construcción de dicha parte de la consulta, o bien, colocas algún valor por defecto en caso de no existir alguno...

eso, porque al poner un campo disabled ya no es enviado hacía el script que procesa el formulario...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/01/2011, 14:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Problema con para ingresar formulario

Muchas gracias!

Le agrege una condionante a la consulta en base a la categoría que se mande y problema resulto :)

Saludos.

Etiquetas: ingresar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:18.