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ú

Mensajes - mchojrin

#21
PHP / Re: arrays con select multiple
24 Abril 2019, 16:47 PM
Es un poco difícil leer el código así... te recomiendo para empezar usar nombres de variables algo más descriptivos.

Copié tu código tal cual está y me da un error en la línea

if($respb[$x1a] == $_POST['p2ap[$x1a]']){$selected = ' selected';}

Nada grave, podrías ocultarlo usando @ (Aunque no te lo recomiendo).

Para hacerlo funcionar tuve que hacerle algunas modificaciones, la versión ejecutable es:

<?php

$respb
=array('Siempre','Casi siempre','Casi nunca','Nunca','');

$regcue=7//este varia segun un select de una bd

@$p2ap1=array();
?>

<form method="post">
<?php
for($x1 0$x1 $regcue$x1++)
{
   echo 
'<td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" >';
   for(
$x1a 0$x1a count($respb); $x1a++)
  {
     echo 
'<option value="'.$respb[$x1a].'"'.( array_key_exists'p2ap[$x1a]'$_POST ) && $respb[$x1a] == $_POST['p2ap[$x1a]'] ? 'selected' '').'>'.$respb[$x1a].'</option>';
  }
  echo 
'</select>';
  @
$p2v=$p2ap[$x1];
  
array_push($p2ap1,$p2v);
}

echo 
" <td><input type='submit' name='botonenv' value='Continuar a la parte 3'/>";
?>

</form>
<?php
if (@$_POST['botonenv']=='Continuar a la parte 3')
{
     
print_r($p2ap1);
}


  Y ahí sí me da la salida que dices:

Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => )

El problema es que todos los select tienen el mismo nombre... si ves el código HTML generado verás esto:

<select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select><td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select><td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select><td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select><td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select><td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select><td><select name="p2ap[$x1]" value="$p2ap[$x1]" class="form-control" ><option value="Siempre">Siempre</option><option value="Casi siempre">Casi siempre</option><option value="Casi nunca">Casi nunca</option><option value="Nunca">Nunca</option><option value=""></option></select>

  Esto sucede por las comillas (simples) que usas para generar el nombre (y el value) del select.

  Me falta algo de info para darte una versión completamente funcional, pero creo que con esto tendrás una base para avanzar:

<?php

$respb
=array('Siempre','Casi siempre','Casi nunca','Nunca','');

$regcue=7//este varia segun un select de una bd

@$p2ap1=array();
?>

<form method="post">
<?php
for($x1 0$x1 $regcue$x1++)
{
   echo 
'<td><select name="p2ap['.$x1.']" value="'.$p2ap[$x1].'" class="form-control" >';
   for(
$x1a 0$x1a count($respb); $x1a++)
  {
     echo 
'<option value="'.$respb[$x1a].'"'.( array_key_exists'p2ap['.$x1.']'$_POST ) && $respb[$x1a] == $_POST['p2ap['.$x1.']'] ? 'selected' '').'>'.$respb[$x1a].'</option>';
  }
  echo 
'</select>';
  @
$p2v=$p2ap[$x1];
  
array_push($p2ap1,$p2v);
}

echo 
" <td><input type='submit' name='botonenv' value='Continuar a la parte 3'/>";
?>

</form>
<?php
if (@$_POST['botonenv']=='Continuar a la parte 3')
{
     
print_r($p2ap1);
}
#22
Lo mejor para estos casos es utilizar un debugger (Xdebug por ejemplo).

Si lo usas en combinación con algún IDE (NetBeans, PHPStorm, etc...) lo resolverás rápidamente.

Te dejo un video que puede ayudarte.

Saludos
#23
PHP / Re: ordenar tabla
21 Abril 2019, 00:07 AM
Lo que necesitas es agregar al final de tu SQL una cláusula de ordenamiento.

En lugar de:

$sql="SELECT * from personas";

Algo como:

$sql="SELECT * from personas ORDER BY nombre";

Combinando con la respuesta de @srWhitSkull lo que harías sería algo como:


$orden = in_array( $_GET['ordenar'], [ 'id', 'nombre', 'genero' ] ) ? $_GET['ordenar'] : 'id'; // Por seguridad

$sql="SELECT * from personas ORDER BY $orden";


Saludos
#24
Cita de: #!drvy en 13 Abril 2019, 22:53 PM

Usar mail es igual de efectivo y recomendable siempre y cuando este el servidor smtp configurado.

Saludos

No estoy muy de acuerdo. Puede que usando SMTP puedas solucionar algunos problemas relacionados con la seguridad, ahora, en cuanto a la facilidad de uso y eficiencia se queda bastante atrás... enviar correos con adjuntos usando mail es un tema por ejemplo, usando Swift o alguna otra librería no.

Incluso, si usás un servicio de envíos al que se accede vía API podés hacer algo mucho más eficiente... No estoy seguro de qué capacidades tiene mail para, por ejemplo, hacer uso de pools de conexiones a un SMTP (Imagino que ninguna).

En fin, mail puede ser una solución quick-and-dirty, pero si necesitás algo más escalable te conviene mirar para otro lado
#25
Genial. En general igual no es muy bueno usar la funcion mail... aca podes ver algunas opciones
#26
PHP / Re: ayuda con frameworks
13 Abril 2019, 20:45 PM
Esta semana terminé de dar un curso de Symfony donde vimos ese tema.

Si te interesa participar de la próxima edición contáctame.

Saludos
#27
Es un tema de cómo Gmail maneja las imágenes de los correos. Fijate usando un cliente de correo que no sea Gmail.

En general, ese problema se puede dar si Google no puede acceder al archivo presente en tu dominio.
#28
¿Querés empezar a usar #Symfony pero estás en Windows? ¡No hay problema! Acá te dejo un video para que aprendas cómo montar tu entorno. ¡Que lo disfrutes!

[youtube=640,360]https://youtu.be/5yiCbtRDqxc[/youtube]
#29
Por si te estás enfrentando al problema de la duplicación de información por subida repetida acá te dejo una posible solución:

[youtube=640,360]http://www.youtube.com/embed/blTlGFvf4Es[/youtube]

Que la disfrutes!
#30
Que lo disfruten!

[youtube=640,360]https://www.youtube.com/watch?v=1_sfpOq4_H0[/youtube]