elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Temas
Páginas: [1]
1  Programación / Desarrollo Web / Obtener id dinámico en jQuery en: 30 Mayo 2017, 23:17 pm
Buenas miren cargo una serie de productos desde una BD de la siguiente forma:
Código
  1. <?php
  2. /* .... */
  3.  
  4. while ($row = $stm->fetchAll(PDO::FETCH_ASSOC)) {
  5.   foreach($row as $producto){
  6. ?>
  7. <div class="item  col-xs-4 col-lg-4">
  8. <div class="thumbnail">
  9. <img class="group list-group-image" src="<?=$producto['img_producto']?>" alt="<?=$producto['nombre']?>" />
  10. <div class="caption">
  11. <h4 class="group inner list-group-item-heading">
  12. <?=$producto['nombre']?></h4>
  13. <p class="group inner list-group-item-text">
  14. <?=$producto['descripcion']?></p>
  15. <div class="row">
  16. <div class="col-xs-12 col-md-6">
  17. <p class="lead"><?=$producto['precio']?> €</p>
  18. </div>
  19. <?php
  20. error_reporting(E_ALL ^ E_NOTICE);
  21. if($_SESSION['conectado']!=="si"){
  22. ?>
  23. <div class="col-xs-12 col-md-6">
  24. <p  style="background:#FFD700;box-shadow: 1px 1px 5px #00288A;"class="group inner list-group-item-text">Para comprar <a style='color: black;' data-toggle="modal" href="#miModalIniSesion">Inicie Sesión</a> o <a style='color: black;' data-toggle="modal" href="#miModalReg">Registrese</a></p>
  25. </div>
  26. <?php }else if($_SESSION['conectado']=="si"){ ?>
  27. <div id='content' class="col-xs-12 col-md-6">
  28. <form id='formCarrito' method="post">
  29. Cantidad: <input type="number" id='cantidad' name="cantidad" placeholder="0" style="width: 50px;margin-bottom: 2px;">
  30. <input type="hidden" name="cod_producto" id='cod_producto' value="<?=$producto['id_producto']?>"><?=$producto['id_producto']?>
  31. <input type='submit' id='addCarritoBtn' name='addCarrito' class="btn btn-success" value='Añadir al Carrito'>
  32. <div id='response'></div>
  33. </form>
  34. </div>
  35. <?php }?>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. <?php
  41. }

Alguien sabe como puedo hacer que dependiendo a que ítem pulses se envie esa cantidad por jQuery? por ahora tengo esto pero obviamente no funciona:
Código
  1. $('form').submit(function(){
  2. var cantidad=$("#cantidad").val();
  3. var cod=$("#cod_producto").val();
  4. alert(cantidad+cod);
  5. $.ajax({
  6. type:'POST',
  7. url:'php/Carrito.php',
  8. data:{
  9. id_producto:cod,
  10. cantidad:cantidad
  11. },
  12. success: function(data){
  13. alert(data);
  14. document.getElementById('response').innerHTML=data;
  15. }
  16. });
  17. });
  18.  
2  Programación / PHP / Creación de un paginador en: 28 Mayo 2017, 18:15 pm
Hola Buenas.
Estoy teniendo algunos problemas a la hora de realizar un paginador para una web. Las web las estoy pasando de esta forma en un índex. php
Código:

$pagina = isset($_GET['p']) ? strtolower($_GET['p']) : 'Home';
require_once 'php/header.php';
require_once 'php/' . $pagina . '.php';


Así bien en un nabab las voy haciendo referencia de esta manera:

Código:
<ul class="nav navbar-nav">
<li><a href="?p=Home"><span class='fa fa-home'></span> Home </a></li>
<li><a href="?p=Gafas_Graduadas">Gafas de Ver </a></li>
</ul>

Pues bien a la hora de realizar el navegador, tengo problemas con la url a pasar, lo estoy realizando de la siguiente forma:

Código:
<?php
//Clase con la conexión a la BD
include 'Conexion_a_BD.php';
$TAMANO_PAGINA = 10;

$pagina = $_GET["pagina"];
if (!$pagina) {
   $inicio = 0;
   $pagina=1;
} else {
    $inicio = ($pagina - 1) * $TAMANO_PAGINA;
}
$query_gafasVer="SELECT * FROM productos WHERE tipo='Gafa_de_Ver'";
$resultado=$conex->query($query_gafasVer);
$num_resultados = $resultado->rowCount(PDO::FETCH_ASSOC);
$total_paginas = ceil($num_resultados / $TAMANO_PAGINA);

$consulta = "SELECT * FROM productos WHERE tipo='Gafa_de_Ver' ORDER BY Creado DESC LIMIT :inicio, :fin";
$stm  = $conex->prepare($consulta);
$stm->bindParam(':inicio', $inicio, PDO::PARAM_INT);
$stm->bindParam(':fin', $TAMANO_PAGINA, PDO::PARAM_INT);
$stm->execute();

while ($row = $stm->fetchAll(PDO::FETCH_ASSOC)) {
    foreach($row as $producto)
        //Contenido a mostrar
   }
}
if ($total_paginas > 1){
   for ($i=1;$i<=$total_paginas;$i++){
if ($pagina == $i) echo $pagina;
else    echo "<a href='?pagina=" . $i . "'>" . $i . "</a> ";
    }
}
?>

Alguien sabe que he de pasar en el ultimo href para que se realice correctamente la paginación? Estoy totalmente perdido.
3  Programación / Programación General / Problema con atributo z-index en: 22 Mayo 2017, 21:11 pm
Buenas, estaba creando una validación de errores cuando me he topado con el problema de que al mostrar un div como de error, me empuja hacia abajo los elementos del formulario, cuando me gustaría que este por encima de ellos, he utilizado el atributo z-index en el css pero no se realiza. Si alguien fuese tan amable de explicarme o decirme como solucionarlo, estaría encantado.
Muestro acá los códigos js,html y css:

HTML:
Código:
<tr>
<td>Contraseña:</td>
<td>
<input type='password' name='pwdIn' id='pwdIn' placeholder='Introduzca su contraseña'>
<div id="errorPwd" class="errorPass">
<h4>La contraseña debería cumplir los siguientes requisitos:</h4>
<ul>
<li id="largo" class="invalid">Debe tener almenos <strong>8</strong> caracteres.</li>
<li id="mayuscula" class="invalid">Debe contener almenos <strong>1 letra mayúscula</strong>.</li>
<li id="minuscula" class="invalid">Debe contener almenos <strong>1 letra minúscula</strong>.</li>
<li id="numero" class="invalid">Debe contener almenos <strong>1 número</strong>.</li>
</ul>
</div>
</td>
</tr>

JS:
Código:
function validarPwd(){
var valido;
if(!contraseña.val().match(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,}/g)){
valido=false;
}else{
valido=true;
}
return valido;
}
contraseña.focusin(function(){
contraseña.attr('style', 'background:#87CEEB');
});
contraseña.keyup(function(){
var pwd = contraseña.val();
        //validate the length
        if ( pwd.length < 8 ) {
            $('#largo').removeClass('valid').addClass('invalid');
        } else {
            $('#largo').removeClass('invalid').addClass('valid');
        }

        //validate letter
        if ( pwd.match(/[a-z]/) ) {
            $('#minuscula').removeClass('invalid').addClass('valid');
        } else {
            $('#minuscula').removeClass('valid').addClass('invalid');
        }

        //validate capital letter
        if ( pwd.match(/[A-Z]/) ) {
            $('#mayuscula').removeClass('invalid').addClass('valid');
        } else {
            $('#mayuscula').removeClass('valid').addClass('invalid');
        }

        //validate number
        if ( pwd.match(/\d/) ) {
            $('#numero').removeClass('invalid').addClass('valid');
        } else {
            $('#numero').removeClass('valid').addClass('invalid');
        }
$('#errorPwd').slideDown();
}).blur(function() {
if(validarPwd()===false){
contraseña.attr('style', 'border:3px solid #FF4A4A');
$('#errorPwd').show();
}else{
contraseña.attr('style', 'background:#E4FAD3');
$('#errorPwd').hide();
}
});

CSS:
Código:
.errorPass{
display: none;
width: 350px;
background: #000000;
border-radius: 5px;
color: white;
z-index: 1;
}
.invalid {
background:url(../imagenes/cancel.png) no-repeat 0 50%;
padding-left:22px;
line-height:24px;
color:#ec3f41;
}

.valid {
background-image:url(../imagenes/accept.png) no-repeat 0 50%;
padding-left:22px;
line-height:24px;
color:#3a7d34;
}
4  Programación / Ejercicios / javascript método onClick(); en: 26 Febrero 2017, 21:41 pm
Buenas me gustaría saber una forma de conseguir que al pulsar un botón me devuelva por ejemplo 'a'. a continuación si pulso de nuevo que me devuelva 'b'. y repetir el proceso.
Todo ello en javascript lo he intentado de mil y una formas y ya me quedo sin ideas.
Pense esto pero obviamente no funciona.

Código:
<script>
function valor(values){
value=values.split(",");
for(var i=0;i<value.length;i++){
if (value=='A'){
var value='B';
}else if(value=='B'){
var value='A';
}
alert(value);
i++;
}
}
</script>
<body>
<input type="button" onClick="valor('ASC,DESC');" value="valor">
</body>
5  Programación / Desarrollo Web / Duda con jQuery, Ajax, PHP en: 24 Febrero 2017, 23:08 pm
Hola buenas tengo la siguiente duda. Necesito realizar una ordenación en orden ascendente o descendente de las columnas de una tabla cargada desde una BD.

Esta ordenación se realiza al pulsar sobre (por ejemplo) columna nombre. la primera vez seria orden ascendente y si volvemos a pulsar descendente.

El problema reside en que no consigo cambiar el valor de la query de ASC a DESC.

Por favor help me haha.

P.D: presento los trozos de código pertinentes.

jQuery:
Código:
function ordenacion(ordenacion){
if(tipo=="ASC"){
tipo="DESC";
}else{
tipo="ASC";
}
if(ordenacion=="tdUser"){
ordenar= "order by nombreUsuario "+tipo;
}if(ordenacion=="tdNombre"){
ordenar= "order by nombrePropio "+tipo;
}if(ordenacion=="tdApellidos"){
ordenar= "order by apellidos "+tipo;
}if(ordenacion=="tdDni"){
ordenar="order by DNI "+tipo;
}if(ordenacion=="tdFecha"){
ordenar="order by fechaNacimiento "+tipo;
}
enviarConsulta();
}

function enviarConsulta(){
var dataString=ordenar;
$.ajax({
type: "POST",
url: "colocarTabla.php",
data: {info : dataString},
success: function(data){
$("#mostrarTabla").html(data);
}
});
}

Php:
Código:
$ordenar=$_POST['info']??"";
$busqueda="SELECT * FROM  personas ".$ordenar;
$resultado = consulta($busqueda);
echo $busqueda;
$xml="<?xml version=\"1.0\"?>\n";
$xml.="<personas>";
while($dato=$resultado->fetch()){
$xml.= "<persona>";
$xml.= "<nombreUsuario>".$dato['nombreUsuario']."</nombreUsuario>";
$xml.= "<nombrePropio>".$dato['nombrePropio']."</nombrePropio>";
$xml.= "<apellidos>".$dato['apellidos']."</apellidos>";
$xml.= "<DNI>".$dato['DNI']."</DNI>";
$xml.= "<fechaNacimiento>".$dato['fechaNacimiento']."</fechaNacimiento>";
$xml.= "</persona>";
}
$xml.= "</personas>";
$personas=new SimpleXMLElement($xml);
?>

<table>
<tr>
<td><a id='tdUser' onClick="ordenacion('tdUser');">Usuario</a></td>
<td><a id='tdNombre' onClick="ordenacion('tdNombre');">Nombre</a></td>
<td><a id='tdApellidos' onClick="ordenacion('tdApellidos');">Apellidos</a></td>
<td><a id='tdDni' onClick="ordenacion('tdDni');">Dni</a></td>
<td><a id='tdFecha' onClick="ordenacion('tdFecha');">Fecha</a></td>
</tr>
<?php
foreach ($personas->persona as $fila){
echo "<tr><td>".$fila->nombreUsuario."</td>";
echo "<td>".$fila->nombrePropio."</td>";
echo "<td>".$fila->apellidos."</td>";
echo "<td>".$fila->DNI."</td>";
echo "<td>".$fila->fechaNacimiento."</td></tr>";
}
?>
</table>
6  Programación / Desarrollo Web / Conecta4 javascript en: 16 Diciembre 2016, 22:05 pm
Buenas tardes. Me pongo en contacto con el foro para intentar que me den alguna pista o alguna solución a el siguiente problema. Estoy realizando el juego del Conecta4 en javascript, pero a la hora de la comprobación de que encuentre 4 fichas juntas, mi cabeza explota y no consigue llegar a la solución.

Este es el código que tengo:

Index.html:
Código:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Conecta4</title>
</head>

<body>
<img id="tabFondo" src="Images/Tablero.png" alt="tablero" hidden="true">
<img id="rojas" src="Images/fichaRoja.png" alt="Ficha Roja" hidden="true">
<img id="amarillas" src="Images/fichaAmarilla.png" alt="Ficha Amarilla" hidden="true">
<canvas id="cnvTablero" style="border:1px solid blue;" onClick="tab.pinchar(event)"></canvas>
<script src="Tablero.js"></script>
<script src="Ficha.js"></script>
<script type="text/javascript">
var tab = new Tablero();
tab.mostrar();
</script>
</body>
</html>

Ficha.js :
Código
  1. function Ficha(color){
  2. "use strict";
  3. this.color=color;
  4.  
  5. if(this.color===R){
  6. this.imagen = document.getElementById("rojas");
  7. }else{
  8. this.imagen = document.getElementById("amarillas");
  9. }
  10. }
  11.  

Tablero.js:
Código
  1. const R = 1;
  2. const A = -1;
  3.  
  4. function Tablero(){
  5. "use strict";
  6. var altura = 6;
  7. var anchura = 7;
  8. var coincidencias=0;
  9.  
  10. this.imagen = document.getElementById("tabFondo");
  11. this.canvas = document.getElementById("cnvTablero");
  12. this.ctx = this.canvas.getContext("2d");
  13. this.canvas.width=anchura*100;
  14. this.fichas = new Array();
  15.  
  16. //Pintar tablero
  17. for(var i=0; i<anchura; i++){
  18. for(var j=0; j<altura; j++){
  19. this.ctx.drawImage(this.imagen, i*100, j*100);
  20. }
  21. }
  22.  
  23. //Inicializar el array bidimensional
  24. for(var i=0; i<anchura; i++){
  25. this.fichas[i] = new Array();
  26. for(var j=0; j<altura; j++){
  27. this.fichas[i][j] = undefined;
  28. }
  29. }
  30. this.jugador = R;
  31.  
  32.  
  33. this.pinchar=function(event){
  34. //Obtiene posicion del tablero
  35. var x =Math.floor((event.pageX - this.canvas.offsetLeft)/ 100);
  36. var y =Math.floor((event.pageY - this.canvas.offsetTop) / 100);
  37.  
  38. for(var i=altura-1; i>=0; i--){
  39. if(this.fichas[x][i] == undefined){
  40. this.fichas[x][i]=new Ficha(this.jugador);
  41. break;
  42. }
  43. }
  44. this.jugador = -this.jugador;
  45. this.mostrar();
  46. this.comprobar(x,y);
  47. };
  48.  
  49. this.mostrar=function(){
  50. for(var i=anchura-1; i>=0; i--){
  51. for(var j=altura-1; j>=0; j--){
  52. if(this.fichas[i][j] != undefined){
  53. this.ctx.drawImage(this.fichas[i][j].imagen, i*100, j*100);
  54. }
  55. }
  56. }
  57. };
  58.  
  59. this.comprobar=function(x,y){
  60. for(var i=0;i<anchura;i++){
  61.                             coincidencias=1;
  62. for(var j=0;j<altura;j++){
  63. if(this.fichas[i][j]!=undefined){
  64. //Comprobación Horizontal
  65. //Comprobación Vertical
  66. //Comprobación Diagonal Derecha a Izquierda y hacia Arriba
  67. //Comprobación Diagonal Izquierda a Derecha y hacia Abajo
  68. }
  69. }
  70. }
  71.  
  72. };
  73.  
  74. this.gameOver(coincidencias){
  75. if(coincidencias==4){
  76. if(this.jugador==R){
  77. alert("Gana Rojo");
  78. }else if(this.jugador==A){
  79. alert("Gana Amarillo");
  80. }
  81. }
  82. }
  83. }
  84.  

He probado realizar lo siguiente para la comprobación horizontal, pero no funciona correctamente:
Código
  1. this.comprobar=function(x,y){
  2. for(var i=0;i<anchura;i++){
  3. coincidencias=1;
  4. for(var j=0;j<altura;j++){
  5. if(this.fichas[i][j]!=undefined){
  6. //Comprobación Horizontal
  7. for(var a=i;a<=anchura;a++){
  8. var h=y;
  9. if(this.fichas[a][y]!=undefined && this.fichas[a][y]==this.jugador){
  10. coincidencias++;
  11. }else{
  12. coincidencias=1;
  13. }
  14. }
  15. //Comprobación Vertical
  16. //Comprobación Diagonal Derecha a Izquierda y hacia Arriba
  17. //Comprobación Diagonal Izquierda a Derecha y hacia Abajo
  18. }
  19. }
  20. }
  21.  
  22. };
  23.  
  24.  

Gracias de antemano. Saludos¡¡
7  Programación / PHP / Inserción de datos en formulario en: 11 Noviembre 2016, 20:38 pm
Buenas, presento el siguiente problema con el que me topo, la cuestión es que tendría que hacer una agenda telefónica("en plan cutre"), en el cual me tiene que mostrar una tabla con los datos que voy introduciendo que son nombre y teléfono. Para ello me apoyo en el input type hidden para que me guarde los valores, ya que al volver a introducir un valor la pagina hace un refresh y me borra lo escrito, es decir se sobreescribe. Mi problema se presenta con esto último, todo el rato se esta sobreescribiendo y no consigo que en la tabla se muestren mas registros. Alguna sugerencia o resolución. Además se presenta el problema que no puedo utilizar JQuery ni Ajax ni javascript, solo Html y PHP. :(

Aqui dejo mi código que evidentemente está defectuoso xD.

Código
  1. <html>
  2. <head>
  3. <title>Agenda</title>
  4. </head>
  5. <body>
  6. <h1 align="center">Agenda de Contactos</h1>
  7. <form method="post" action="Agenda.php">
  8. Nombre <input type="text" name="nomTf" ><br>
  9. Telefono <input type="tel" name="telTf"><br>
  10. <input type="submit" value="Guardar" name="Guardar">
  11. <input type="hidden" name="datosGuardados" value=<?php $datosGuardados?>>
  12.  
  13. </form>
  14. <?php
  15. if($_POST){
  16. $nombre=$_POST['nomTf'];
  17. $telefono=$_POST['telTf'];
  18. $datosGuardados=$_POST['datosGuardados'];
  19.  
  20. $datosGuardadosNom[]=$nombre;
  21. $datosGuardadosTel[]=$telefono;
  22.  
  23. $contactoNom=implode(',', $datosGuardadosNom);
  24. $contactoTel=implode(',', $datosGuardadosTel);
  25.  
  26. if($nombre==""){
  27. echo "El nombre está vacio";
  28. }
  29. if(!is_numeric($telefono)){
  30. echo "El teléfono tiene que ser un número";
  31. }
  32.  
  33. echo "Tu contacto se ha guardado que es: " . $contactoNom.','.$contactoTel;
  34. echo '<table border="10" align="center" >
  35.                <tr><td>Nombre</td><td>Teléfono</td></tr>';
  36. echo '<tr>';
  37. echo '<td align="center">'. $nombre.'</td>';
  38. echo '<td align="center">'. $telefono.'</td>';
  39. echo '</tr>';
  40. echo '<tr>';
  41. for ($i = 1; $i < count($datosGuardados); $i++) {
  42. echo '<td align="center">'. $contactoNom.'</td>';
  43. echo '<td align="center">'. $contactoTel.'</td>';
  44. }
  45. echo '</tr>';
  46. echo '</table>';
  47. }
  48. ?>
  49. </body>
  50. </html>
  51.  

Gracias de antemano por tomaros la molestia de mirarlo.


Mod: Los códigos deben ir en etiquetas GeSHi
8  Programación / PHP / Caracteres repetidos en las lineas de fichero en: 24 Abril 2016, 11:05 am
Hola. Buenos días.

Estoy aprendiendo a programar en php y me he topado con un ejercicio que por más que lo intento no logro encontrarle la solución y seguro que fallo el alguna boberia de logica.

El ejercicio manda decir si en las lineas de un fichero hay o no caracteres repetidos, es decir la salida por pantalla debería de ser esta:

La línea “hola” NO tiene caracteres repetidos.

La línea “aca aca aca” SI tiene caracteres repetidos.

La línea “alla alla alla” SI tiene caracteres repetidos.

La línea “fichero” NO tiene caracteres repetidos.

Yo tengo esto programado:

<HTML>
 <HEAD>
   <TITLE>Repetición de Caracteres</TITLE>
 </HEAD>
 <BODY>
     <?php
      define("FICH_DATOS", 'FicheroEj3.txt'); 
      $fich = @fopen(FICH_DATOS, 'r') or die("ERROR al abrir el fichero");
      $sRepetidos=0;
      while(!feof($fich)){
         $linea=fgets($fich);
         for($i=0;$i<strlen($linea);$i++){
            for($j=$i+1;$j<strlen($linea);$j++){
               if($linea[$i]==$linea[$j]){
                  $sRepetidos++;
               }
            }
         }
         if($sRepetidos!=0){
            echo "La linea ".$linea." SI tiene caracteres repetidos <br>";
         }else if($sRepetidos==0){
            echo "La linea ".$linea." NO tiene caracteres repetidos <br>";
         }
      } 
   
      fclose ($fich);
?>
 </BODY>
</HTML>


Pero me da error ya que la ultima linea me sale que SI tiene caracteres repetidos.

¿Alguna ayuda para este novato? Gracias de antemano.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines