|
Mostrar Temas
|
Páginas: [1] 2 3 4
|
1
|
Programación / Programación General / Problema con ejercicio con objeto DOM
|
en: 21 Febrero 2021, 20:09 pm
|
Buenas tengo el siguiente ejercicio: Implementa una lista interactiva a través de flechas que permita mover los elementos hacia arriba y hacia abajo. https://ibb.co/10dDKqSDescarga los ficheros proporcionados en esta carpeta compartida de Google Drive e implementa las funciones descritas en el fichero JS. Consideraciones: Los ficheros HTML y CSS no deben modificarse. Antes de empezar a escribir código javascript, analiza la estructura del documento HTML, cómo están formados los elementos de la lista y las clases que utilizan. ----------------------------------------- Basicamente son 5 elementos li que hay que mover arriba y abajo con la particularidad de que el primer y ultimo elemento tienen los botones de arriba o abajo deshabilitados, y esa ultima parte es la que no consigo. Yo tengo lo siguiente: window.onload = function() { /** * 1. Obtén todos los elementos li como una HTMLCollection dinámica en la * constante "oElementosLi". [0,5 puntos] */ const oElementosLi = document.getElementsByTagName("li"); /** * 2. Obtén una NodeList estática con todas las flechas (elementos span que * contienen la clase "flechaArriba" y "flechaAbajo") en la constante * "oFlechas". [0,75 puntos] */ const oFlechas = document.querySelectorAll('span.flechaArriba, span.flechaAbajo'); /** * 3. Añade un manejador del evento click a cada flecha usando la NodeList * "oFlechas", un bucle "forEach" y la notación flecha. Al hacer click en * una flecha se debe llamar a la función "actualizarLista". [1,75 puntos] */ oFlechas.forEach(oFlecha => { oFlecha.addEventListener("click", actualizarLista); }); /** * 4. Implementa la función "actualizarLista" para que: * * -Intercambie el elemento li sobre el que se ha hecho click con su hermano * anterior o posterior dependiendo si se ha pulsado la flecha arriba o * abajo. Pulsar la flecha arriba en el primer elemento o la flecha abajo en * el último no realizará ninguna operación. Utiliza la función * "insertAdjacentElement" y las referencias "parentNode", previousElementSibling" * y "nextElementSibling". [4 puntos] * * -Elimine la clase "flechaDeshabilitada" de los elementos que la contengan * y la añada a la flecha arriba del primer elemento y a la flecha abajo del * último elemento. [3 puntos] */ function actualizarLista(event) { const oFlecha = event.target; const oFlechaActual = oFlecha.parentNode; const oFlechaAnterior = oFlechaActual.previousElementSibling; const oFlechaSiguiente = oFlechaActual.nextElementSibling; oFlechas.forEach((oFlecha) => { if (oFlecha.classList.contains("flechaDeshabilitada")) { oFlecha.classList.remove("flechaDeshabilitada"); } }); if(oFlecha.className == "flechaArriba"){ oFlechaAnterior.insertAdjacentElement("beforebegin", oFlechaActual); }else if(oFlecha.className == "flechaAbajo"){ oFlechaSiguiente.insertAdjacentElement("afterend", oFlechaActual); } } }
Esta es la estructura HTML: <!DOCTYPE html> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <h1>Lista interactiva </h1> <span class="flechaArriba flechaDeshabilitada"></span> <span class="texto">Texto colocado inicialmente en la posición 1. </span> <span class="texto">Texto colocado inicialmente en la posición 2. </span> <span class="texto">Texto colocado inicialmente en la posición 3. </span> <span class="texto">Texto colocado inicialmente en la posición 4. </span> <span class="flechaAbajo flechaDeshabilitada"></span> <span class="texto">Texto colocado inicialmente en la posición 5. </span>
¿Alguien sabría explicarme como poner la clase deshabilitada en el primer y ultimo elemento? Muchísimas gracias de antemano!
|
|
|
2
|
Programación / PHP / Sacar dato de una select sql en php y html
|
en: 21 Noviembre 2020, 08:41 am
|
Buenas, tengo una tabla con un dato que quiero sacarlo por un option de html para seleccionarlo y eliminarlo posteriormente, pero no consigo sacar dicho dato por el option. Este es mi codigo: echo "<h3>Escoge el dato a eliminar:</h2>"; echo "<select name='datoeliminar'>"; //Aquí recorremos las tablas para ver los datos en el select $listadodatos = array_column(mysqli_fetch_all($conexion->query("SELECT * FROM $tabla")), 0); for ($i = 0; $i < count($listadodatos); $i++) { $sql = mysqli_query("SELECT `nomconsola` FROM `consolas` WHERE 1"); $nombre = $row[0]; } echo "<option value='{$listadodatos[$i]}'>$nombre</option>"; } $tablaasig = $tabla; echo "</select>"; echo "<input name='tablaasig' type='hidden' value='{$tabla}'>"; echo "<input type='submit' name='eliminar' value='Eliminar'>"; echo "</form>";
Cuando lo ejecuto el campo option me sale una vez y vacío. ¿Alguna ayuda?
|
|
|
3
|
Programación / Bases de Datos / Problema rarísimo con php y base de datos
|
en: 19 Noviembre 2020, 20:05 pm
|
Buenas, estoy haciendo una base de datos (videojuegos) con 3 tablas (consolas, estudios y juegos), la tabla juegos tiene dos claves foráneas, una que referencia a consolas y otra a estudios. Tengo una página en la que conecto con sql y creo las tablas con los siguientes CREATES: $sql2 = "CREATE TABLE IF NOT EXISTS CONSOLAS (NOMCONSOLA VARCHAR(50), ID INT, PRIMARY KEY (NOMCONSOLA))";
$sql4 = "CREATE TABLE IF NOT EXISTS ESTUDIOS (NOMESTUDIO VARCHAR(50), ID INT, PRIMARY KEY (NOMESTUDIO))";
$sql6 = "CREATE TABLE IF NOT EXISTS JUEGOS ( NOMJUEGO VARCHAR(50) PRIMARY KEY, CONSOLA VARCHAR(50), " . "ESTUDIO VARCHAR(50), CONSTRAINT fk_nombre_consola FOREIGN KEY (consola) REFERENCES consolas " . "(nomconsola) ON DELETE CASCADE, CONSTRAINT fk_nombre_estudio FOREIGN KEY (estudio) REFERENCES " . "estudios (nomestudio) ON DELETE CASCADE)";
Pues bien, el problema viene al querer eliminar una de las tablas (que no sea la tabla juegos). Escribo la siguiente sentencia: if($tablaeliminar == "estudios"){ $sql = "ALTER TABLE JUEGOS DROP FOREIGN KEY fk_nombre_estudio; DROP TABLE IF EXISTS ESTUDIOS"; echo "<script>alert('Tabla estudios borrada correctamente');</script>"; header("refresh:0; url=administrador.php"); } else { }
Y al intentar ejecutarlo en la web me aparece un fallo en la sql: Error: ALTER TABLE JUEGOS DROP FOREIGN KEY fk_nombre_estudio; DROP TABLE IF EXISTS ESTUDIOS You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DROP TABLE IF EXISTS ESTUDIOS' at line 1 Lo extraño viene cuando pego esa misma sql sin cambiarla en la linea de comandos de la base de datos de phpmyadmin y me borra la tabla sin problemas. Me estoy volviendo loco para solucionarlo. ¿Alguna ayuda? Gracias de antemano y un saludo.
|
|
|
4
|
Programación / PHP / Duda con PHP y base de datos
|
en: 28 Octubre 2020, 17:46 pm
|
Buenas, tengo un par de formularios, uno hace la conexión a la base de datos y otro la desconexión, pero tengo un problema y es que en la desconexión no se "encuentra" los datos para realizarla. Aquí tengo el código: <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="POST"> <label for="equipo">Equipo</label> <input type="text" value="Equipo" name="equipo"> <label for="usuario">Usuario</label> <input type="text" value="Usuario" name="usuario"> <label for="contrasena">Password</label> <input type="password" value="Contraseña" name="password"> <label for="basededatos">Base de datos</label> <input type="text" value="Nombre BD" name="bd"> <input type="submit" value="Conectar" name="conectar"> </form> <br> <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="POST"> <input type="submit" value="Desconectar" name="desconectar"> </form> <?php //Comprobamos que hayamos pulsado el botón Conectar if (isset($_POST['conectar'])) { Conectar($_POST["equipo"], $_POST["usuario"], $_POST["password"], $_POST["bd"]); $conec = Conectar($_POST["equipo"], $_POST["usuario"], $_POST["password"], $_POST["bd"]); } if (isset($_POST['desconectar'])) { Desconectar($conec); }
function Conectar($equipo, $usuario, $password, $bd) { //Conectar a BD $conexion = mysqli_connect($equipo, $usuario, $password, $bd);
if (!$conexion) { die("Error de conexión, has introducido algún dato mal"); } else { echo "<script>alert('Te has conectado correctamente a la base de datos {$bd} con el usuario {$usuario}');</script>"; } return $conexion; } function Desconectar($conec){ echo "<script>alert('El usuario {$_POST["usuario"]} se ha desconectado de la base de datos {$_POST["bd"]}');</script>"; mysqli_close($conec); } ?> ¿Alguna solucion? Gracias y un saludo
|
|
|
5
|
Programación / PHP / Duda tonta con ejercicio en PHP
|
en: 14 Octubre 2020, 15:34 pm
|
Buenas tengo un problema, necesito un programa que al introducir una frase te la escriba cada caracter con su siguiente, ejemplo: Hola que tal --> Ipmb rvf ubm Los espacios los debe dejar igual, y la "z" debe cambiarse por la "a". ahí viene mi problema, ya que no se por que funciona todo salvo este caso, si meto una "z" por cualquier lado me repite la "a" 25 veces (como el abecedario) y no veo el error. Os dejo el código: <?php
$frase = $_POST["frase"];
//Creamos el array del abecedario $abecedario = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"); // $abecedariomayus = array_change_key_case($abecedario, CASEUPPER); $numletras = count($abecedario); /*for($i=0;$i<$numletras;$i++){ echo $abecedario[$i] . "<br>"; echo strtoupper($abecedario[$i]) . "<br>"; }*/ $resultado=""; for($i=0;$i<strlen($frase);$i++){ for($j=0; $j<count($abecedario);$j++){ if($frase[$i]=="z"){ $resultado = $resultado.$abecedario[0]; }else if ((($frase[$i] == $abecedario[$j])) && ($frase[$i] != "z")){ $resultado = $resultado.$abecedario[$j+1]; }else if($frase[$i]==" "){ $resultado = $resultado." "; } } } echo $resultado; ?>
|
|
|
6
|
Comunicaciones / Android / Problema Xiaomi no sale de fastboot
|
en: 29 Julio 2020, 08:50 am
|
Buenas, ayer se me cayó el móvil con la consiguiente rotura de pantalla, aún así funcionaba perfectamente. Hoy ya no.
Al intentar encender se me queda el logo de Xiaomi con fondo negro eternamente y lo único que puedo hacer es pulsar el bóton "volumen -" y "apagar" para entrar en fastbood, pero de ahí ya no puedo hacer nada.
No me deja entrar en el modo depuración, he intentado usar la aplicación de PC miflash pero también me da error y lo único que quiero es poder recuperar los pocos datos que tengo en la memoria interna.
¿Algún modo?, ¿es posible acceder desde Windows aunque el móvil no pase del logo?
Gracias de antemano y un saludo!
|
|
|
8
|
Comunicaciones / Redes / Problema con IP estática Ubuntu Server
|
en: 30 Noviembre 2016, 10:15 am
|
Estoy intentando poner la siguiente IP estática a mi Ubuntu Server: 192.168.1.053
Para hacerlo abro el archivo interfaces con sudo nano /etc/network/interfaces y escribo lo siguiente:
# Configuración de dirección IP fija para el interfaz eth0 auto enp0s3 iface enp0s3 inet static address 192.168.1.053 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 8.8.8.8 dns-nameservers 8.8.4.4
Hago un restart a la red con sudo /etc/init.d/networking restart y reinicio la máquina con sudo init 6
Hago un ifconfig y me sale que tengo la IP 192.168.1.43, lo he probado poniendo en el último dígito .052 y me sale la IP 192.168.1.42. La conexión funciona perfectamente haciendo ping.
¿Cuál es el problema?, ¿no puedo poner ese 0 delante?
Muchas gracias de antemano y saludos.
|
|
|
9
|
Programación / Desarrollo Web / Duda con arrays en javascript
|
en: 5 Octubre 2016, 23:46 pm
|
Buenas, quiero un javascript que me pida "x" nombres y los liste luego, el problema es que no sé como crear un array de "x" posiciones, he probado de mil formas y no me sale. Os pongo el código a ver si me podéis ayudar. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Ejercicio 7 string</title> </head> <body> <script type="text/javascript"> var arraynombres=new array(10); var nombre; var contador=0; do{ for(var i=0; i<arraynombres.length;i++){ nombre=prompt("Introduce el nombre"); arraynombres[i]= ""+nombre; contador++; if(nombre!="ultimo"){ document.write("Nombre: "+arraynombres[i]+ " y se han leído "+contador+" nombres <br>"); } } } while(nombre!="ultimo"); </script> </body> </html>
Gracias de antemano y saludos.
|
|
|
|
|
|
|