Comunidad de diseño web y desarrollo en internet online

¿cómo usar este formulario para hacer un ingreso en la db?

Citar            
MensajeEscrito el 18 Feb 2014 12:14 pm
Hola, no sé si este es el lugar adecuado para pedir ayuda sobre mi problema. Si no es así pido disculpas.
Tengo un código con un formulario que cuando seleccionas la variable "curso", te ofrece el listado de "temas" que están relacionados con ese curso y entonces hacer la selección del tema. Esto funciona bien. Lo que no consigo hacer ahora es utilizar este formulario para hacer un ingreso a la base de datos.
En todos mis intentos me falla algo: o deja de funcionar el formulario y no muestra los temas, o no hace el ingreso en la db. Dejo el código por si me pueden ayudar. Gracias.

Código :

</form>
<p>&nbsp;</p>
<form name="f1" action="" method="POST">
  <h2 align="center">INSERTAR EJERCICIO</h2>
  <table width="100%" border="0" cellspacing="2" cellpadding="3">
    <tr>
      <td width="11%" bgcolor="#FFFF33"><div align="center">Curso</div></td>
      <td width="89%"><select name="curso" onchange="cambia_tema()">
        <option value="0" selected="selected">Seleccione... </option>
        <option value="1">1 ciclo Primaria </option>
        <option value="2">2 ciclo Primaria </option>
        <option value="3">3 ciclo Primaria </option>
        <option value="4">1 ESO </option>
        <option value="5">2 ESO </option>
        <option value="6">3 ESO </option>
        <option value="7">4 ESO </option>
        <option value="8">1 Bachillerato </option>
        <option value="9">2 Bachillerato </option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Tema</div></td>
      <td><select name="tema">
        <option value="-">- </option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Dificultad</div></td>
      <td><select name="dificultad[]" id="dificultad" multiple="multiple">
        <option value="baja">baja</option>
        <option value="media">media</option>
        <option value="alta">alta</option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Enunciado</div></td>
      <td><label for="textarea"></label>
      <textarea name="enunciado" id="enunciado" cols="150" rows="5"></textarea></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Insertar" /></td>
    </tr>
  </table>
  <p>&nbsp;</p>

</form>

<script>
//defino una serie de varibles Array para cada curso
var temas_1=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_2=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_3=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_4=new Array("-","Tema 01 de 1 de ESO","Tema 02 de 1 de ESO","Tema 03 de 1 de ESO","Tema 04 de 1 de ESO","Tema 05 de 1 de ESO","Tema 06 de 1 de ESO","...")
var temas_5=new Array("-","Tema 01 de 2 de ESO","Tema 02 de 2 de ESO","Tema 03 de 2 de ESO","Tema 04 de 2 de ESO","Tema 05 de 2 de ESO","Tema 06 de 2 de ESO","...")
var temas_6=new Array("-","Tema 01 de 3 de ESO","Tema 02 de 3 de ESO","Tema 03 de 3 de ESO","Tema 04 de 3 de ESO","Tema 05 de 3 de ESO","Tema 06 de 3 de ESO","...")
var temas_7=new Array("-","Tema 01 de 4 de ESO","Tema 02 de 4 de ESO","Tema 03 de 4 de ESO","Tema 04 de 4 de ESO","Tema 05 de 4 de ESO","Tema 06 de 4 de ESO","...")
var temas_8=new Array("-","Tema 01 de de 1 Bachillerato","Tema 02 de de 1 Bachillerato","Tema 03 de de 1 Bachillerato","Tema 04 de de 1 Bachillerato","Tema 05 de de 1 Bachillerato","Tema 06 de de 1 Bachillerato","...")
var temas_9=new Array("-","Tema 01 de de 2 Bachillerato","Tema 02 de de 2 Bachillerato","Tema 03 de de 2 Bachillerato","Tema 04 de de 2 Bachillerato","Tema 05 de de 2 Bachillerato","Tema 06 de de 2 Bachillerato","...")

//función que cambia los temas del select de temas en función del curso que se haya escogido en el select de curso.
function cambia_tema(){
   //tomo el valor del select del curso elegido
   var curso
   curso = document.f1.curso[document.f1.curso.selectedIndex].value
   //miro a ver si el curso está definido
   

   
   if (curso != 0) {
      //si estaba definido, entonces coloco las opciones del tema correspondiente.
      //selecciono el array de tema adecuado
      mis_temas=eval("temas_" + curso)
      //calculo el numero de temas
      num_temas = mis_temas.length
      //marco el número de temas en el select
      document.f1.tema.length = num_temas
      //para cada tema del array, la introduzco en el select
      for(i=0;i<num_temas;i++){
         document.f1.tema.options[i].value=mis_temas[i]
         document.f1.tema.options[i].text=mis_temas[i]
      }   
   }else{
      //si no había tema seleccionado, elimino los temas del select
      document.f1.tema.length = 1
      //coloco un guión en la única opción que he dejado
      document.f1.tema.options[0].value = "-"
       document.f1.tema.options[0].text = "-"
   }
   //marco como seleccionada la opción primera de tema
   document.f1.tema.options[0].selected = true
}
</script>

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2014 03:08 pm
¿Y el código del insert a la base de datos?

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 18 Feb 2014 05:47 pm
Gracias por contestar tan rápido. El código que he utilizado y que no me funciona es el siguiente:

Código :

<?php
// datos de configuracion
$ip = 'localhost';
$usuario = 'root';
$password = '';
$db_name = 'exam';
// conectamos con la db
$conn = mysql_pconnect($ip,$usuario,$password) or die();
// seleccionamos la base de datos
$huboerror = mysql_select_db($db_name,$conn) or die();
// si se envia el formulario
if ( !empty($_POST['submit']) ) {
$query = "INSERT INTO ejercicios (enunciado, tema, dificultad, curso) values ('{$_POST['enunciado']}','{$_POST['tema']}','{$_POST['dificultad']}','{$_POST['curso']}')";

$response = mysql_query($query, $conn);
}
?>

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2014 08:23 pm
Bueno mira, primero es bueno comprobar los datos que recibes, a mi me gusta hacerlo de la siguiente forma:

Código PHP :

echo '<pre>' . print_r($_POST, 1) . '</pre>';

Esto devuelve algo así

Código :

Array
(
    [curso] => 1
    [tema] => Suma
    [dificultad] => Array
        (
            [0] => media
        )
    [enunciado] => Prueba
    [Submit] => Insertar
)


Lo único que te hace falta agregar es

Código PHP :

$dificultad = implode(',', $_POST['dificultad']);

Esto para que dificultad se trate como un string, y el insert quedaría así:

Código PHP :

$query = "INSERT INTO exam (enunciado, tema, dificultad, curso) values ('{$_POST['enunciado']}','{$_POST['tema']}','{$dificultad}','{$_POST['curso']}')";

Cuando hagas una conexión incluye en el die mysql_error()

Código PHP :

$conn = mysql_connect($ip, $usuario, $password) or die(mysql_error());

Esto te puede ayudar a ver si el error no anda por ahí

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 18 Feb 2014 10:00 pm
Ok, muchas gracias. Funciona perfecto.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Feb 2014 11:13 pm
Una ayuda más. Por las construcción que tiene el formulario, los valores que la variable "curso" ingresa en la base de datos son 1, 2, 3, etc, pero yo lo que quiero que ingrese es 1 ciclo Primaria, 2 ciclo Primaria, 3 ciclo Primaria, etc. ¿Cómo puedo hacer para que la variable cambie sus valores antes de hacer la inserción?

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Feb 2014 09:33 pm
Mira, lo que se me ocurre es tomar el texto del select y asignarlo a un campo oculto y así usarlo en el insert, sería algo así:

Agregar input oculto

Código HTML :

<input type="hidden" name="textoCurso" value="" />


Código Javascript :

   //tomo el valor del select del curso elegido
   var curso
// ACÁ LE QUITE EL .value PARA PODER USAR LA VARIABLE MÁS ADELANTE
   curso = document.f1.curso[document.f1.curso.selectedIndex];
   //miro a ver si el curso está definido

// ACÁ LE AGREGO EL .value
   if (curso.value != 0) {
       // ACÁ UTILIZO EL .text PARA OBTENER EL TEXTO DEl OPTION
      // Asigno el valor a textoCurso del texto de la opcion seleccionada
      document.f1.textoCurso.value = curso.text;

Podrías agregar un campo a la base de datos y el insert quedaría así

Código PHP :

$query = "INSERT INTO exam (enunciado, tema, dificultad, idCurso, textoCurso) values ('{$_POST['enunciado']}','{$_POST['tema']}','{$dificultad}','{$_POST['curso']},'{$_POST['textoCurso']}')";

Me avisa si le sirvió.

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 19 Feb 2014 11:03 pm
Muchas gracias por su ayuda y por tan rápida respuesta, pero debo estar haciendo algo mal porque no funciona. La variable "textoCurso" sale vacía y en la base de datos no se inserta ningún registro. Dejo el código completo como me ha quedado por si pueden ver mi error. Gracias de todas maneras.

Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
<html xmlns="http://www.w3.org/1999/xhtml">
<style type="text/css" media="print">
.nover {display:none}
</style>




<head>
<title>Exámenes</title>
<img src="http://www.politecnicocartagena.com/wp-content/uploads/2012/10/cab2.jpg" width="100%"/>
<script type="text/javascript"
   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
</head>


<body>

<form action="c_ahora.php" method="post">

<h2><p align="center">ELIGE LAS OPCIONES QUE NECESITES</p></h2>

       
      <Table  Width=100%>
      <tr> <h3><p align="center">CURSOS</p></h3></tr></table>
<Table Border=1 Width=100%>  <tr bgcolor="#99FF00"><td bgcolor="#99FF00">
          1 Ciclo Primaria <input type="checkbox" name="curso[]" value="1 ciclo Primaria" />
        <br></td>
        <td>2 Ciclo Primaria <input type="checkbox" name="curso[]" value="2 ciclo Primaria" />
        <br></td>
       <td> 3 Ciclo Primaria <input type="checkbox" name="curso[]" value="3 ciclo Primaria" />
        <br>
      <td> 1 ESO <input type="checkbox" name="curso[]" value="1 ESO" />
        <br></td>
        <td> 2 ESO <input type="checkbox" name="curso[]" value="2 ESO" />
        <br></td>
        <td> 3 ESO <input type="checkbox" name="curso[]" value="3 ESO" />
        <br></td>
        <td> 4 ESO <input type="checkbox" name="curso[]" value="4 ESO" />
        <br></td>
         <td>1 Bachillerato <input type="checkbox" name="curso[]" value="1 Bachillerato" />
        <br></td>
         <td>2 Bachillerato <input type="checkbox" name="curso[]" value="2 Bachillerato" />
        <br>

                                                      
                                                      


  </tr></table>
  
<Table  Width=100%>
   <tr><td><H3><p align="center">TEMAS</p></h3></td></tr>
                  
                    
  </table>
 <Table Border=1 Width=100%>
   <tr bgcolor="#99FF00">
     <td bgcolor="#CCCC00"><h4 align="center">Primaria</h4></td>
     <td bgcolor="#CCCC00"><h4 align="center">1 ESO</h4></td>
     <td bgcolor="#CCCC00"><h4 align="center">2 ESO</h4></td>
     <td bgcolor="#CCCC00"><h4 align="center">3 ESO     </h4>     
     <td bgcolor="#CCCC00"><h4 align="center">4 ESO</h4></td>
     <td bgcolor="#CCCC00"><h4 align="center">1 Bachillerato</h4></td>
     <td bgcolor="#CCCC00"><h4 align="center">2 Bachillerato</h4></td>
   </tr>
   <tr bgcolor="#99FF00"><td width="14%">
          <div align="right">Suma
  <input type="checkbox" name="tema[]" value="suma" />
          </div></td>
     <td width="12%"><div align="right">Naturales. Potencias y raíces
         <input type="checkbox" name="tema[]101" value="Naturales. Potencias y raíces" />
     </div></td>
        <td width="12%"><div align="right">Divisibilidad
            <input type="checkbox" name="tema[]201" value="Divisibilidad" />
          <br>
        </div></td>
        <td width="12%"><div align="right">Racionales e irracionales
            <input type="checkbox" name="tema[]301" value="Racionales e irracionales" />
          <br />
        </div></td>
      <td width="13%"><div align="right"><br>
      </div></td>
        <td width="14%"><div align="right"><br>
        </div></td>
        <td width="11%"><div align="right"><br>
        </div></td>
        
         
  </tr>
   <tr bgcolor="#99FF00">
     <td><div align="right">Resta
       <input type="checkbox" name="tema[]2" value="resta" />
     </div></td>
     <td><div align="right">Divisibilidad
         <input type="checkbox" name="tema[]102" value="Divisibilidad" />
     </div></td>
     <td><div align="right">
       <div align="right">Enteros
         <input type="checkbox" name="tema[]202" value="Enteros" />
         <br />
         </div>
     </div></td>
     <td><div align="right">
       <div align="right">Potencias y ra&iacute;ces
         <input type="checkbox" name="tema[]302" value="Potencias y ra&iacute;ces" />
         <br />
       </div>
     </div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
   </tr>
   <tr bgcolor="#99FF00">
     <td><div align="right">Multiplicaci&oacute;n
       <input type="checkbox" name="tema[]3" value="multiplicacion" />
     </div></td>
     <td><div align="right"> Fracciones
         <input type="checkbox" name="tema[]103" value="Fracciones" />
     </div></td>
     <td><div align="right">
       <div align="right">Potencias
         <input type="checkbox" name="tema[]203" value="Potencias" />
         <br />
         </div>
     </div></td>
     <td><div align="right">
       <div align="right">Ecuaciones de 1&ordm; grado
         <input type="checkbox" name="tema[]303" value="Ecuaciones de 1&ordm; grado" />
         <br />
       </div>
     </div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
   </tr>
   <tr bgcolor="#99FF00">
     <td><div align="right">Divisi&oacute;n
       <input type="checkbox" name="tema[]4" value="division" />
     </div></td>
     <td><div align="right">Decimales
         <input type="checkbox" name="tema[]104" value="Decimales" />
     </div></td>
     <td><div align="right">
       <div align="right">Fracciones
         <input type="checkbox" name="tema[]204" value="Fracciones" />
         <br />
         </div>
     </div></td>
     <td><div align="right">
       <div align="right">Sistemas de ecuaciones
         <input type="checkbox" name="tema[]304" value="Sistemas de ecuaciones" />
         <br />
       </div>
     </div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
   </tr>
   <tr bgcolor="#99FF00">
     <td><div align="right">Ejercicios 2 Operaciones
       <input type="checkbox" name="tema[]5" value="ejercicios 2 operaciones" />
     </div></td>
     <td><div align="right">Sistemas de medida
         <input type="checkbox" name="tema[]105" value="Sistemas de medida" />
     </div></td>
     <td><div align="right">
       <div align="right">Decimales
         <input type="checkbox" name="tema[]205" value="Decimales" />
         <br />
         </div>
     </div></td>
     <td><div align="right">
       <div align="right">Ecuaciones de 2&ordm; grado
         <input type="checkbox" name="tema[]305" value="Ecuaciones de 2&ordm; grado" />
         <br />
       </div>
     </div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
   </tr>
   <tr bgcolor="#99FF00">
     <td><div align="right">Ejercicios de más de 2 Operaciones
       <input type="checkbox" name="tema[]6" value="ejercicios dos operaciones" />
     </div></td>
     <td><div align="right">Enteros
         <input type="checkbox" name="tema[]106" value="Enteros" />
     </div></td>
     <td><div align="right">
       <div align="right">Ra&iacute;ces
         <input type="checkbox" name="tema[]206" value="Ra&iacute;ces" />
         <br />
         </div>
     </div></td>
     <td><div align="right">
       <div align="right">Sucesiones y progresiones
         <input type="checkbox" name="tema[]306" value="Sucesiones y progresiones" />
         <br />
       </div>
     </div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
     <td><div align="right"></div></td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Proporcionalidad
       <input type="checkbox" name="tema[]107" value="Proporcionalidad" />
     </div></td>
     <td><div align="right">&Aacute;gebra. Ecuaciones
       <input type="checkbox" name="tema[]207" value="&Aacute;gebra. Ecuaciones" />
       <br />
     </div></td>
     <td><div align="right">Proporcionalidad
         <input type="checkbox" name="tema[]307" value="Proporcionalidad" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Iniciaci&oacute;n al Algebra
       <input type="checkbox" name="tema[]108" value="Iniciaci&oacute;n al Algebra" />
     </div></td>
     <td><div align="right">Proporcionalidad
       <input type="checkbox" name="tema[]208" value="Proporcionalidad" />
       <br />
     </div></td>
     <td><div align="right">Figuras planas
         <input type="checkbox" name="tema[]308" value="Figuras planas" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Estad&iacute;stica y Probabilidad
       <input type="checkbox" name="tema[]109" value="Estad&iacute;stica y Probabilidad" />
     </div></td>
     <td><div align="right">Medida del tiempo y &aacute;ngulos
       <input type="checkbox" name="tema[]209" value="Medida del tiempo y &aacute;ngulos" />
       <br />
     </div></td>
     <td><div align="right">Cuerpos geom&eacute;tricos
         <input type="checkbox" name="tema[]309" value="Cuerpos geom&eacute;tricos" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Rectas y &Aacute;ngulos
       <input type="checkbox" name="tema[]110" value="Rectas y &Aacute;ngulos" />
     </div></td>
     <td><div align="right">Pit&aacute;goras
       <input type="checkbox" name="tema[]210" value="Pit&aacute;goras" />
       <br />
     </div></td>
     <td><div align="right">Transformaciones en el plano
         <input type="checkbox" name="tema[]310" value="Transformaciones en el plano" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Figuras planas
       <input type="checkbox" name="tema[]111" value="Figuras planas" />
     </div></td>
     <td><div align="right">Semejanza. Tales
       <input type="checkbox" name="tema[]211" value="Semejanza. Tales" />
       <br />
     </div></td>
     <td><div align="right">Funciones
         <input type="checkbox" name="tema[]311" value="Funciones" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Per&iacute;metros y &aacute;reas
       <input type="checkbox" name="tema[]112" value="Per&iacute;metros y &aacute;reas" />
     </div></td>
     <td><div align="right">&Aacute;reas
       <input type="checkbox" name="tema[]212" value="&Aacute;reas" />
       <br />
     </div></td>
     <td><div align="right">Funcines lineales y afines
         <input type="checkbox" name="tema[]312" value="Funcines lineales y afines" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td><div align="right">Cuerpos geom&eacute;tricos
       <input type="checkbox" name="tema[]113" value="Cuerpos geom&eacute;tricos" />
     </div></td>
     <td><div align="right">Vol&uacute;menes
       <input type="checkbox" name="tema[]213" value="Vol&uacute;menes" />
       <br />
     </div></td>
     <td><div align="right">Estad&iacute;stica
         <input type="checkbox" name="tema[]313" value="Estad&iacute;stica" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td><div align="right">Funciones
       <input type="checkbox" name="tema[]214" value="Funciones" />
       <br />
     </div></td>
     <td><div align="right">Probabilidad
         <input type="checkbox" name="tema[]314" value="Probabilidad" />
       <br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
   <tr bgcolor="#99FF00">
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td><div align="right">Estad&iacute;stica
       <input type="checkbox" name="tema[]215" value="Estad&iacute;stica" />
       <br />
     </div></td>
     <td><div align="right"><br />
     </div></td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td>&nbsp;</td>
   </tr>
 </table>
  
    <Table  Width=100%>
  <tr><td><H3><p align="center">DIFICULTAD (No elegir, hasta ver qué pasa)</p></h3></td></tr>
 
<Table Border=1 Width=100%>
  <tr bgcolor="#99FF00"><td>
  
    Baja <input type="checkbox" name="dif[]" value="baja" />
        <br></td>
        <td>Media <input type="checkbox" name="dif[]" value="media" />
        <br></td>
       <td> Alta <input type="checkbox" name="dif[]" value="alta" />
        <br>
      </td>
  </tr>
  
  
  </table>
      <center>
      <br> <input type="submit"   value='Elegir' /></center>
</form>
<p>&nbsp;</p>
<form name="f1" action="" method="POST">
  <h2 align="center">INSERTAR EJERCICIO</h2>
  <table width="100%" border="0" cellspacing="2" cellpadding="3">
    <tr>
      <td width="11%" bgcolor="#FFFF33"><div align="center">Curso</div></td>
      <td width="89%"><select name="curso" onchange="cambia_tema()">
        <option value="0" selected="selected">Seleccione... </option>
        <option value="1">1 ciclo Primaria </option>
        <option value="2">2 ciclo Primaria </option>
        <option value="3">3 ciclo Primaria </option>
        <option value="4">1 ESO </option>
        <option value="5">2 ESO </option>
        <option value="6">3 ESO </option>
        <option value="7">4 ESO </option>
        <option value="8">1 Bachillerato </option>
        <option value="9">2 Bachillerato </option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Tema</div></td>
      <td><select name="tema">
        <option value="-">- </option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Dificultad</div></td>
      <td><select name="dificultad[]" id="dificultad" size="3">
        <option value="baja">baja</option>
        <option value="media">media</option>
        <option value="alta">alta</option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Enunciado</div></td>
      <td><label for="textarea"></label>
      <textarea name="enunciado" id="enunciado" cols="150" rows="5"></textarea></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Insertar" /></td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <input type="hidden" name="textoCurso" value="" />
</form>

<script>

   //tomo el valor del select del curso elegido
   var curso
// ACÁ LE QUITE EL .value PARA PODER USAR LA VARIABLE MÁS ADELANTE
   curso = document.f1.curso[document.f1.curso.selectedIndex];
   //miro a ver si el curso está definido

// ACÁ LE AGREGO EL .value
   if (curso.value != 0) {
       // ACÁ UTILIZO EL .text PARA OBTENER EL TEXTO DEl OPTION
      // Asigno el valor a textoCurso del texto de la opcion seleccionada
      document.f1.textoCurso.value = curso.text;}

//defino una serie de varibles Array para cada curso
var temas_1=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_2=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_3=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_4=new Array("-","Tema 01 de 1 de ESO","Tema 02 de 1 de ESO","Tema 03 de 1 de ESO","Tema 04 de 1 de ESO","Tema 05 de 1 de ESO","Tema 06 de 1 de ESO","...")
var temas_5=new Array("-","Tema 01 de 2 de ESO","Tema 02 de 2 de ESO","Tema 03 de 2 de ESO","Tema 04 de 2 de ESO","Tema 05 de 2 de ESO","Tema 06 de 2 de ESO","...")
var temas_6=new Array("-","Tema 01 de 3 de ESO","Tema 02 de 3 de ESO","Tema 03 de 3 de ESO","Tema 04 de 3 de ESO","Tema 05 de 3 de ESO","Tema 06 de 3 de ESO","...")
var temas_7=new Array("-","Tema 01 de 4 de ESO","Tema 02 de 4 de ESO","Tema 03 de 4 de ESO","Tema 04 de 4 de ESO","Tema 05 de 4 de ESO","Tema 06 de 4 de ESO","...")
var temas_8=new Array("-","Tema 01 de de 1 Bachillerato","Tema 02 de de 1 Bachillerato","Tema 03 de de 1 Bachillerato","Tema 04 de de 1 Bachillerato","Tema 05 de de 1 Bachillerato","Tema 06 de de 1 Bachillerato","...")
var temas_9=new Array("-","Tema 01 de de 2 Bachillerato","Tema 02 de de 2 Bachillerato","Tema 03 de de 2 Bachillerato","Tema 04 de de 2 Bachillerato","Tema 05 de de 2 Bachillerato","Tema 06 de de 2 Bachillerato","...")

//función que cambia los temas del select de temas en función del curso que se haya escogido en el select de curso.
function cambia_tema(){
   //tomo el valor del select del curso elegido
   var curso
   curso = document.f1.curso[document.f1.curso.selectedIndex].value
   //miro a ver si el curso está definido
   

   
   if (curso != 0) {
      //si estaba definido, entonces coloco las opciones del tema correspondiente.
      //selecciono el array de tema adecuado
      mis_temas=eval("temas_" + curso)
      //calculo el numero de temas
      num_temas = mis_temas.length
      //marco el número de temas en el select
      document.f1.tema.length = num_temas
      //para cada tema del array, la introduzco en el select
      for(i=0;i<num_temas;i++){
         document.f1.tema.options[i].value=mis_temas[i]
         document.f1.tema.options[i].text=mis_temas[i]
      }   
   }else{
      //si no había tema seleccionado, elimino los temas del select
      document.f1.tema.length = 1
      //coloco un guión en la única opción que he dejado
      document.f1.tema.options[0].value = "-"
       document.f1.tema.options[0].text = "-"
   }
   //marco como seleccionada la opción primera de tema
   document.f1.tema.options[0].selected = true
}



</script>
<?php
// datos de configuracion
$ip = 'localhost';
$usuario = 'root';
$password = '';
$db_name = 'exam';
// conectamos con la db
$conn = mysql_pconnect($ip,$usuario,$password) or die();
$conn = mysql_connect($ip, $usuario, $password) or die(mysql_error());
// seleccionamos la base de datos
$huboerror = mysql_select_db($db_name,$conn) or die();
// si se envia el formulario

$dificultad = implode(',', $_POST['dificultad']);



$query = "INSERT INTO ejercicios (enunciado, tema, dificultad, idCurso, textoCurso) values ('{$_POST['enunciado']}','{$_POST['tema']}','{$dificultad}','{$_POST['curso']},'{$_POST['textoCurso']}')";

$response = mysql_query($query, $conn);


echo '<pre>' . print_r($_POST, 1) . '</pre>';
?>
</body>
</html>

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Feb 2014 11:14 pm
Lo tienes que poner dentro de la función cambia_tema() no afuera.

Saludos!

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 19 Feb 2014 11:24 pm
Muchas gracias por su ayuda de nuevo, pero mi ignorancia no me deja entenderlo. Mis conocimientos son demasiado bajos. Podría ser más explícito. Gracias.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Feb 2014 11:27 pm

Código Javascript :

//función que cambia los temas del select de temas en función del curso que se haya escogido en el select de curso.
function cambia_tema(){
   //tomo el valor del select del curso elegido
   var curso
   curso = document.f1.curso[document.f1.curso.selectedIndex]
   //miro a ver si el curso está definido

   if (curso.value != 0) {
// Acá debe de ir el curso.text
document.f1.textoCurso.value = curso.text
      //si estaba definido, entonces coloco las opciones del tema correspondiente.
      //selecciono el array de tema adecuado
      mis_temas=eval("temas_" + curso.value)
      //calculo el numero de temas
      num_temas = mis_temas.length
      //marco el número de temas en el select
      document.f1.tema.length = num_temas
      //para cada tema del array, la introduzco en el select
      for(i=0;i<num_temas;i++){
         document.f1.tema.options[i].value=mis_temas[i]
         document.f1.tema.options[i].text=mis_temas[i]
      }   
   }else{
      //si no había tema seleccionado, elimino los temas del select
      document.f1.tema.length = 1
      //coloco un guión en la única opción que he dejado
      document.f1.tema.options[0].value = "-"
       document.f1.tema.options[0].text = "-"
   }
   //marco como seleccionada la opción primera de tema
   document.f1.tema.options[0].selected = true
}

Así debería quedar la función cambia_tema()

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 19 Feb 2014 11:42 pm
Efectivamente, ahora salen todas las variables correctamente, pero por alguna razón no entran a la base de datos. No da error. Gracias de nuevo.

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 19 Feb 2014 11:43 pm
Que bueno que te pude ayudar en algo.

Saludos!

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 20 Feb 2014 03:46 am
Pido disculpas a todo el que esté leyendo esta página pues 6 post más arriba coloqué el código completo de mi página innecesariamente. Fue un error.
Lo único que interesaba era el formulario que estamos trabajando.
En estos momentos ya carga las variables correctamente. Lo único que me falta es que haga el ingreso definitivo en la base de datos. Si me pudieran echar una mano lo agradecería.

Código :

</form>
<p>&nbsp;</p>
<form name="f1" action="" method="POST">
  <h2 align="center">INSERTAR EJERCICIO</h2>
  <table width="100%" border="0" cellspacing="2" cellpadding="3">
    <tr>
      <td width="11%" bgcolor="#FFFF33"><div align="center">Curso</div></td>
      <td width="89%"><select name="curso" onchange="cambia_tema()">
        <option value="0" selected="selected">Seleccione... </option>
        <option value="1">1 ciclo Primaria </option>
        <option value="2">2 ciclo Primaria </option>
        <option value="3">3 ciclo Primaria </option>
        <option value="4">1 ESO </option>
        <option value="5">2 ESO </option>
        <option value="6">3 ESO </option>
        <option value="7">4 ESO </option>
        <option value="8">1 Bachillerato </option>
        <option value="9">2 Bachillerato </option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Tema</div></td>
      <td><select name="tema">
        <option value="-">- </option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Dificultad</div></td>
      <td><select name="dificultad[]" id="dificultad" size="3">
        <option value="baja">baja</option>
        <option value="media">media</option>
        <option value="alta">alta</option>
      </select></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33"><div align="center">Enunciado</div></td>
      <td><label for="textarea"></label>
      <textarea name="enunciado" id="enunciado" cols="150" rows="5"></textarea></td>
    </tr>
    <tr>
      <td bgcolor="#FFFF33">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Insertar" /></td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <input type="hidden" name="textoCurso" value="" />
</form>

<script>

   //tomo el valor del select del curso elegido
   var curso
// ACÁ LE QUITE EL .value PARA PODER USAR LA VARIABLE MÁS ADELANTE
   curso = document.f1.curso[document.f1.curso.selectedIndex];
   //miro a ver si el curso está definido

// ACÁ LE AGREGO EL .value
   if (curso.value != 0) {
       // ACÁ UTILIZO EL .text PARA OBTENER EL TEXTO DEl OPTION
      // Asigno el valor a textoCurso del texto de la opcion seleccionada
      document.f1.textoCurso.value = curso.text;}

//defino una serie de varibles Array para cada curso
var temas_1=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_2=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_3=new Array("-","Suma","Resta","Multiplicación","División","Problemas de dos operaciones","Problemas de más de dos operaciones","...")
var temas_4=new Array("-","Tema 01 de 1 de ESO","Tema 02 de 1 de ESO","Tema 03 de 1 de ESO","Tema 04 de 1 de ESO","Tema 05 de 1 de ESO","Tema 06 de 1 de ESO","...")
var temas_5=new Array("-","Tema 01 de 2 de ESO","Tema 02 de 2 de ESO","Tema 03 de 2 de ESO","Tema 04 de 2 de ESO","Tema 05 de 2 de ESO","Tema 06 de 2 de ESO","...")
var temas_6=new Array("-","Tema 01 de 3 de ESO","Tema 02 de 3 de ESO","Tema 03 de 3 de ESO","Tema 04 de 3 de ESO","Tema 05 de 3 de ESO","Tema 06 de 3 de ESO","...")
var temas_7=new Array("-","Tema 01 de 4 de ESO","Tema 02 de 4 de ESO","Tema 03 de 4 de ESO","Tema 04 de 4 de ESO","Tema 05 de 4 de ESO","Tema 06 de 4 de ESO","...")
var temas_8=new Array("-","Tema 01 de de 1 Bachillerato","Tema 02 de de 1 Bachillerato","Tema 03 de de 1 Bachillerato","Tema 04 de de 1 Bachillerato","Tema 05 de de 1 Bachillerato","Tema 06 de de 1 Bachillerato","...")
var temas_9=new Array("-","Tema 01 de de 2 Bachillerato","Tema 02 de de 2 Bachillerato","Tema 03 de de 2 Bachillerato","Tema 04 de de 2 Bachillerato","Tema 05 de de 2 Bachillerato","Tema 06 de de 2 Bachillerato","...")


//función que cambia los temas del select de temas en función del curso que se haya escogido en el select de curso.
function cambia_tema(){
   //tomo el valor del select del curso elegido
   var curso
   curso = document.f1.curso[document.f1.curso.selectedIndex]
   //miro a ver si el curso está definido

   if (curso.value != 0) {
// Acá debe de ir el curso.text
document.f1.textoCurso.value = curso.text
      //si estaba definido, entonces coloco las opciones del tema correspondiente.
      //selecciono el array de tema adecuado
      mis_temas=eval("temas_" + curso.value)
      //calculo el numero de temas
      num_temas = mis_temas.length
      //marco el número de temas en el select
      document.f1.tema.length = num_temas
      //para cada tema del array, la introduzco en el select
      for(i=0;i<num_temas;i++){
         document.f1.tema.options[i].value=mis_temas[i]
         document.f1.tema.options[i].text=mis_temas[i]
      }   
   }else{
      //si no había tema seleccionado, elimino los temas del select
      document.f1.tema.length = 1
      //coloco un guión en la única opción que he dejado
      document.f1.tema.options[0].value = "-"
       document.f1.tema.options[0].text = "-"
   }
   //marco como seleccionada la opción primera de tema
   document.f1.tema.options[0].selected = true
}

</script>
<?php
// datos de configuracion
$ip = 'localhost';
$usuario = 'root';
$password = '';
$db_name = 'exam';
// conectamos con la db
$conn = mysql_pconnect($ip,$usuario,$password) or die();
$conn = mysql_connect($ip, $usuario, $password) or die(mysql_error());
// seleccionamos la base de datos
$huboerror = mysql_select_db($db_name,$conn) or die();
// si se envia el formulario

$dificultad = implode(',', $_POST['dificultad']);



$query = "INSERT INTO ejercicios (enunciado, tema, dificultad, idCurso, textoCurso) values ('{$_POST['enunciado']}','{$_POST['tema']}','{$dificultad}','{$_POST['curso']},'{$_POST['textoCurso']}')";

$response = mysql_query($query, $conn);


echo '<pre>' . print_r($_POST, 1) . '</pre>';
?>
</body>
</html>

Por eulersito

15 de clabLevel



 

chrome
Citar            
MensajeEscrito el 20 Feb 2014 03:35 pm
Hola Eurlesito,

Acá hay que destacar algo importante, si quieres aprender a programar no puedes andar buscando código o ayuda y hacer copy paste, tienes que analizar tu código junto con el que te envían y encontrar las diferencias y hacer prueba y error hasta dar con la solución.

Te copio un link con el código que hice yo, siempre es bueno aplicar el "Divide y vencerás", todo en un mismo archivo no es recomendable por que se te hace más difícil encontrar errores.

Con este código no solo copies y pegues, busca la diferencia entre tu código y el mío, revisa que la base de datos esté correcta y busca una solución hasta que definitivamente no puedas más, por lo menos has el intento, en los foros se ayuda a aprender, no se hace el trabajo de los demás. Google casi siempre tiene la respuesta a tus problemas, consulta le a él y si definitivamente no encuentras la solución consulta con un error en concreto.

Link para descargar codigo

¡Saludos!

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

chrome
Citar            
MensajeEscrito el 20 Feb 2014 03:58 pm
En primer lugar gracias por el tiempo que estás dedicando a mi trabajo. En segundo lugar pido disculpas si he molestado a alguien pues no era mi intención. Y en tercer lugar, seguiré tus consejos aunque ya lo hacía. A veces uno se bloquea demasiado. Gracias.

¡Saludos!

Por eulersito

15 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.