Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Arm144

#1
Buenas miren cargo una serie de productos desde una BD de la siguiente forma:
Código (php) [Seleccionar]
<?php
/* .... */

while ($row $stm->fetchAll(PDO::FETCH_ASSOC)) {
   foreach($row as $producto){
?>

<div class="item  col-xs-4 col-lg-4">
<div class="thumbnail">
<img class="group list-group-image" src="<?=$producto['img_producto']?>" alt="<?=$producto['nombre']?>" />
<div class="caption">
<h4 class="group inner list-group-item-heading">
<?=$producto['nombre']?></h4>
<p class="group inner list-group-item-text">
<?=$producto['descripcion']?></p>
<div class="row">
<div class="col-xs-12 col-md-6">
<p class="lead"><?=$producto['precio']?> €</p>
</div>
<?php 
error_reporting(E_ALL E_NOTICE);
session_start();
if($_SESSION['conectado']!=="si"){
?>

<div class="col-xs-12 col-md-6">
<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>
</div>
<?php }else if($_SESSION['conectado']=="si"){ ?>
<div id='content' class="col-xs-12 col-md-6">
<form id='formCarrito' method="post">
Cantidad: <input type="number" id='cantidad' name="cantidad" placeholder="0" style="width: 50px;margin-bottom: 2px;">
<input type="hidden" name="cod_producto" id='cod_producto' value="<?=$producto['id_producto']?>"><?=$producto['id_producto']?>
<input type='submit' id='addCarritoBtn' name='addCarrito' class="btn btn-success" value='Añadir al Carrito'>
<div id='response'></div>
</form>
</div>
<?php }?>
</div>
</div>
</div>
</div>
<?php
}


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 (javascript) [Seleccionar]

$('form').submit(function(){
var cantidad=$("#cantidad").val();
var cod=$("#cod_producto").val();
alert(cantidad+cod);
$.ajax({
type:'POST',
url:'php/Carrito.php',
data:{
id_producto:cod,
cantidad:cantidad
},
success: function(data){
alert(data);
document.getElementById('response').innerHTML=data;
}
});
});
#2
PHP / Creación de un paginador
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


$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:


<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:


<?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'$inicioPDO::PARAM_INT); 
$stm->bindParam(':fin'$TAMANO_PAGINAPDO::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
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:

<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:

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:

.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
Ejercicios / javascript método onClick();
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.


<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
Desarrollo Web / Duda con jQuery, Ajax, PHP
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:

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:

$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
Desarrollo Web / Conecta4 javascript
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:
<!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 (javascript) [Seleccionar]

function Ficha(color){
"use strict";
this.color=color;

if(this.color===R){
this.imagen = document.getElementById("rojas");
}else{
this.imagen = document.getElementById("amarillas");
}
}


Tablero.js:
Código (javascript) [Seleccionar]
const R = 1;
const A = -1;

function Tablero(){
"use strict";
var altura = 6;
var anchura = 7;
var coincidencias=0;

this.imagen = document.getElementById("tabFondo");
this.canvas = document.getElementById("cnvTablero");
this.ctx = this.canvas.getContext("2d");
this.canvas.width=anchura*100;
this.fichas = new Array();

//Pintar tablero
for(var i=0; i<anchura; i++){
for(var j=0; j<altura; j++){
this.ctx.drawImage(this.imagen, i*100, j*100);
}
}

//Inicializar el array bidimensional
for(var i=0; i<anchura; i++){
this.fichas[i] = new Array();
for(var j=0; j<altura; j++){
this.fichas[i][j] = undefined;
}
}
this.jugador = R;


this.pinchar=function(event){
//Obtiene posicion del tablero
var x =Math.floor((event.pageX - this.canvas.offsetLeft)/ 100);
var y =Math.floor((event.pageY - this.canvas.offsetTop) / 100);

for(var i=altura-1; i>=0; i--){
if(this.fichas[x][i] == undefined){
this.fichas[x][i]=new Ficha(this.jugador);
break;
}
}
this.jugador = -this.jugador;
this.mostrar();
this.comprobar(x,y);
};

this.mostrar=function(){
for(var i=anchura-1; i>=0; i--){
for(var j=altura-1; j>=0; j--){
if(this.fichas[i][j] != undefined){
this.ctx.drawImage(this.fichas[i][j].imagen, i*100, j*100);
}
}
}
};

this.comprobar=function(x,y){
for(var i=0;i<anchura;i++){
                             coincidencias=1;
for(var j=0;j<altura;j++){
if(this.fichas[i][j]!=undefined){
//Comprobación Horizontal
//Comprobación Vertical
//Comprobación Diagonal Derecha a Izquierda y hacia Arriba
//Comprobación Diagonal Izquierda a Derecha y hacia Abajo
}
}
}

};

this.gameOver(coincidencias){
if(coincidencias==4){
if(this.jugador==R){
alert("Gana Rojo");
}else if(this.jugador==A){
alert("Gana Amarillo");
}
}
}
}


He probado realizar lo siguiente para la comprobación horizontal, pero no funciona correctamente:
Código (javascript) [Seleccionar]

this.comprobar=function(x,y){
for(var i=0;i<anchura;i++){
coincidencias=1;
for(var j=0;j<altura;j++){
if(this.fichas[i][j]!=undefined){
//Comprobación Horizontal
for(var a=i;a<=anchura;a++){
var h=y;
if(this.fichas[a][y]!=undefined && this.fichas[a][y]==this.jugador){
coincidencias++;
}else{
coincidencias=1;
}
}
//Comprobación Vertical
//Comprobación Diagonal Derecha a Izquierda y hacia Arriba
//Comprobación Diagonal Izquierda a Derecha y hacia Abajo
}
}
}

};



Gracias de antemano. Saludos¡¡
#7
PHP / Inserción de datos en formulario
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 (php) [Seleccionar]
<html>
<head>
<title>Agenda</title>
</head>
<body>
<h1 align="center">Agenda de Contactos</h1>
<form method="post" action="Agenda.php">
Nombre <input type="text" name="nomTf" ><br>
Telefono <input type="tel" name="telTf"><br>
<input type="submit" value="Guardar" name="Guardar">
<input type="hidden" name="datosGuardados" value=<?php $datosGuardados?>>

</form>
<?php
if($_POST){
$nombre=$_POST['nomTf'];
$telefono=$_POST['telTf'];
$datosGuardados=$_POST['datosGuardados'];

$datosGuardadosNom[]=$nombre;
$datosGuardadosTel[]=$telefono;

$contactoNom=implode(','$datosGuardadosNom);
$contactoTel=implode(','$datosGuardadosTel);

if($nombre==""){
echo "El nombre está vacio";
}
if(!is_numeric($telefono)){
echo "El teléfono tiene que ser un número";
}

echo "Tu contacto se ha guardado que es: " $contactoNom.','.$contactoTel;
echo '<table border="10" align="center" >
                <tr><td>Nombre</td><td>Teléfono</td></tr>'
;
echo '<tr>';
echo '<td align="center">'$nombre.'</td>';
echo '<td align="center">'$telefono.'</td>';
echo '</tr>';
echo '<tr>';
for ($i 1$i count($datosGuardados); $i++) {
echo '<td align="center">'$contactoNom.'</td>';
echo '<td align="center">'$contactoTel.'</td>';
}
echo '</tr>';
echo '</table>';
}
?>

</body>
</html>


Gracias de antemano por tomaros la molestia de mirarlo.


Mod: Los códigos deben ir en etiquetas GeSHi
#8
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.