Foros del Web » Programando para Internet » PHP »

Ayuda con consulta

Estas en el tema de Ayuda con consulta en el foro de PHP en Foros del Web. Hola buenas noches a todos, quisiera saber si alguien puede ayudarme a resolver este problema.. Llamo la información Código PHP:   <td align="left">                 <select name="v_usuario" id="v_usuario">              <?  ...
  #1 (permalink)  
Antiguo 14/10/2009, 21:54
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años, 1 mes
Puntos: 0
Ayuda con consulta

Hola buenas noches a todos, quisiera saber si alguien puede ayudarme a resolver este problema..

Llamo la información

Código PHP:
  <td align="left">
     
          <select name="v_usuario" id="v_usuario">
            <? 

$result 
mysql_query("SELECT * FROM usuarios where status= 'Activa' order by id"); 
while (
$data mysql_fetch_array($resultMYSQL_ASSOC)) 

echo 
'<option value="'.$data["usuario"].'">'.$data["nombre"].'</option>'

mysql_free_result($result); 
?>
          </select>     </td>
como puedo hacer que si al seleccionar un usuario muestre su email

Código HTML:
tr>
      <td align="right">Email:</td>
      <td align="left">&nbsp;</td>
      <td align="left"><? "'.$data["usuario"].'" ?></td>
    </tr> 
espero puedan ayudarme

gracias a todos
  #2 (permalink)  
Antiguo 14/10/2009, 22:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con consulta

Tendrías que re-enviar el dato al servidor y hacer otra consulta para extraer el dato.

Otra opción es usar AJAX para traer el dato sin tener que refrescar la pagina.

Saludos.
  #3 (permalink)  
Antiguo 14/10/2009, 22:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con consulta

Gracias GatorV hay aulgun tutorial de como usarlo?

gracias
  #4 (permalink)  
Antiguo 14/10/2009, 23:44
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ayuda con consulta

Holas,

Enviar datos nuevamente al servidor seria algo brusco, creo que mejor seria que en tu SQL que llamas a todos tus datos (con *) lo pongas el correo en el parametro label de la etiqueta option algo como :

Cita:
echo '<option value="'.$data["usuario"].'" label="'.$data["email"].'" >'.$data["nombre"].'</option>';
Y luego con un OnChange en la etiqueta <select> podrias llamar a una funciona para que te capture el label seleccionado y lo colocas con javascript donde quieras de tu HTML, algo como:

Cita:
<select name="v_usuario" id="v_usuario" OnChange="SeleccionarLabel(this);">

Y tu Javascript seria algo asi como:

Cita:
<script type='text/javascript'>
function SeleccionarLabel(obj)
{ correo = obj.options[obj.selectedIndex].label;
document.getElementById('lblCorreo').innerHTML=cor reo;
}
</script>

Y donde ira el correo segun tu HTML, por ejemplo:

Cita:
tr>
<td align="right">Email:</td>
<td align="left">&nbsp;</td>
<td align="left" id="lblCorreo"></td>
</tr>


Espero que te funcione, eso me parece lo mas correcto en ves de que vuelvas ha llamar nuevamente a tu server, esto seria solo en el mismo cliente.

Saludos
Gildus
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 14/10/2009, 23:47
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
De acuerdo Respuesta: Ayuda con consulta

Holas,

Enviar datos nuevamente al servidor seria algo brusco, creo que mejor seria que en tu SQL que llamas a todos tus datos (con *) lo pongas el correo en el parametro label de la etiqueta option algo como :

Cita:
echo '<option value="'.$data["usuario"].'" label="'.$data["email"].'" >'.$data["nombre"].'</option>';
Y luego con un OnChange en la etiqueta <select> podrias llamar a una funciona para que te capture el label seleccionado y lo colocas con javascript donde quieras de tu HTML, algo como:

Cita:
<select name="v_usuario" id="v_usuario" OnChange="SeleccionarLabel(this);">

Y tu Javascript seria algo asi como:

Cita:
<script type='text/javascript'>
function SeleccionarLabel(obj)
{ correo = obj.options[obj.selectedIndex].label;
document.getElementById('lblCorreo').innerHTML=cor reo;
}
</script>

Y donde ira el correo segun tu HTML, por ejemplo:

Cita:
tr>
<td align="right">Email:</td>
<td align="left">&nbsp;</td>
<td align="left" id="lblCorreo"></td>
</tr>

Espero que te funcione, eso me parece lo mas correcto en ves de que vuelvas ha llamar nuevamente a tu server, esto seria solo en el mismo cliente.

Saludos
Gildus
__________________
.: Gildus :.
  #6 (permalink)  
Antiguo 15/10/2009, 11:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con consulta

MUCHISIMAS GRACIAS... me funciono a la perfeccion solo un detalle

como mando esa variable osea $email=$_POST["email"];

como toma el dato ya que esta en el un <td>

Saludos mi nuevamente mi lgracias
  #7 (permalink)  
Antiguo 15/10/2009, 11:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con consulta

ya me funciono, hice este cambio

Código HTML:
<script type='text/javascript'>
function SeleccionarLabel(obj)
{ correo = obj.options[obj.selectedIndex].label;
document.getElementById('lblCorreo').value=correo;
}
</script>


echo '<option value="'.$data["usuario"].'" label="'.$data["email"].'" >'.$data["nombre"].'</option>';



    <tr>
<td align="right">Email:</td>
<td align="left"><input name="email" type="hidden" value="" id="lblCorreo" /></td>
<td align="left" id="lblCorreo" > </td>
    </tr>

por favor dime si esta bien el codigo o hay que mejorarlo

gracias de antemano por tu ayuda
  #8 (permalink)  
Antiguo 15/10/2009, 13:12
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ayuda con consulta

Cita:
Iniciado por israelmx Ver Mensaje
MUCHISIMAS GRACIAS... me funciono a la perfeccion solo un detalle

como mando esa variable osea $email=$_POST["email"];

como toma el dato ya que esta en el un <td>

Saludos mi nuevamente mi lgracias

Justo como te mencione en el post anterior, la etiqueta <td> tiene un id :

Código PHP:
tr>
      <
td align="right">Email:</td>
      <
td align="left">&nbsp;</td>
      <
td align="left" id="lblCorreo"></td>
    </
tr

Saludos
Gildus
__________________
.: Gildus :.
  #9 (permalink)  
Antiguo 15/10/2009, 13:15
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ayuda con consulta

Cita:
Iniciado por israelmx Ver Mensaje
ya me funciono, hice este cambio

Código HTML:
<script type='text/javascript'>
function SeleccionarLabel(obj)
{ correo = obj.options[obj.selectedIndex].label;
document.getElementById('lblCorreo').value=correo;
}
</script>


echo '<option value="'.$data["usuario"].'" label="'.$data["email"].'" >'.$data["nombre"].'</option>';



    <tr>
<td align="right">Email:</td>
<td align="left"><input name="email" type="hidden" value="" id="lblCorreo" /></td>
<td align="left" id="lblCorreo" > </td>
    </tr>

por favor dime si esta bien el codigo o hay que mejorarlo

gracias de antemano por tu ayuda

Haber alli estas asigando el resultado de seleccionar de tu lista (del <select>) lo asignas a dos etiquetas al <input> y al <td> ya que ambos tienen el mismo id que es lblCorreo.

Depende si vas ha usar el dato correo para registrar algo podrias usar mejor solo el <input> pero si no lo usaras para un registro tan solo para mostrar al usuario mejor seria que uses el <td> ya que solo servira para mostrar nada mas.

Saludos
Gildus
__________________
.: Gildus :.
  #10 (permalink)  
Antiguo 15/10/2009, 13:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con consulta

gracias nuevamente

mira el detalle es que en la parte superior del script le pude value

Código:
<script type='text/javascript'>
function SeleccionarLabel(obj)
{ correo = obj.options[obj.selectedIndex].label;
document.getElementById('lblCorreo').value=correo;
}
</script>
aqui manda llamar correcto?


Código PHP:

 <select name="v_usuario" id="v_usuario" OnChange="SeleccionarLabel(this);">
            <? 

$result 
mysql_query("SELECT * FROM usuarios where status= 'Activa' order by id"); 
while (
$data mysql_fetch_array($resultMYSQL_ASSOC)) 

echo 
'<option value="'.$data["usuario"].'" label="'.$data["email"].'" >'.$data["nombre"].'</option>';

mysql_free_result($result); 
?>
          </select>
despues muestra en esta etiqueda hidden

Código HTML:
<input name="email" type="hidden" value="" id="lblCorreo" /> 
esto lo mando llamar para que envie un correo a ese email que muestra..

$email= $_POST["email"];

si envia el correo a la perfeccion, pero como puedo hacer para que muestre el correo en un <td>

como cambie el value


document.getElementById('lblCorreo').innerHTML=cor reo;

por:

ocument.getElementById('lblCorreo').value=correo;

si coloco en el td id="lblCorreo" no me lo muestra

mil gracias
  #11 (permalink)  
Antiguo 15/10/2009, 15:59
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ayuda con consulta

Entonces en cambiale de id en el <td>

Algo como :

Código PHP:
<script type='text/javascript'>
function 
SeleccionarLabel(obj)
correo obj.options[obj.selectedIndex].label;
 
document.getElementById('lblCorreo').value=correo;
document.getElementById('muestraCorreo').innerHTML=correo;
}
</script> 
Y en el <td>

Código PHP:
<td align="left"><div id="muestraCorreo"></div> </td

Saludos
Gildus
__________________
.: Gildus :.
  #12 (permalink)  
Antiguo 15/10/2009, 21:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 32
Antigüedad: 15 años, 1 mes
Puntos: 0
Excelente cada vez aprendo mas...

Mil gracias

Me funcino a la perfeccion

bueno quiera saber si puedes ayudarme con otro asunto... por lo que veo tienes experiencia...

estoy haciendo un sistema de mensajes para mis usuarios, ya tengo para un solo usuario pero trato de hacer para todos los usurios osea que mail() envie a todos los uaurios que muestre en $email

te coloco el codigo que tengo

Código:
<tr>
        <td align="right">Correos:</td>
        <td>&nbsp;</td>
        <td align='left'>
        <? $result = mysql_query("SELECT * FROM usuarios WHERE status= 'Activa' order by id"); 
while ($data = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
echo ''.$data["email"].'; ';
} ?>            </td>
      </tr>
      <tr>
        <td align="right">&nbsp;</td>
        <td>&nbsp;</td>
        <td align='left'>&nbsp;</td>
      </tr>
      <tr>
      <td align="right">Asunto:</td>
      <td width="8">&nbsp;</td>
      <td align='left'><input name="asunto" type="text" id="asunto" value="<? ''.$data["email"]."" ?>" size="40" /></td>
    </tr>
    <tr>
      <td align="right" valign="top">Mensaje:</td>
      <td>&nbsp;</td>
      <td align='left'><textarea name="mensaje" id="mensaje" cols="40" rows="5"></textarea></td>
    </tr>
    <tr>
      <td align="right">&nbsp;</td>
      <td>&nbsp;</td>
      *</td>
    </tr>
    <tr>
      <td colspan="3" align="center"><input  type="image" style="margin-left:7px; border-style:none; height: 22px;"   value="boton" name="boton" src="../images/enviar.jpg"   />   </td>
    </tr>
  </table>
para el email masivo lo tengo asi


Código PHP:

$respuesta 
"\nHola $nombre\n\nUCAM te ha mandado un mensaje privado\n\n";

    
$asunto $_POST["asunto"] . "\n";
    
$mensaje  $_POST["mensaje"] . "\n";
    
$email  $_POST["email"] . "\n";

    
        
$cuerpo .= "Mensaje: " $_POST["mensaje"] . "\n";
    
$masivo .= "Enviado a:" .$_POST["email"]. "\n";

    
    
$cabeceras .= "From: $nombre <$email>\r\n"
    
$cabeceras1 .= "From: UCAM Mensajes <[email protected]>\r\n";  
    

    
//mando el correo...
    
mail("[email protected]","Mensaje Masivo","$cuerpo$masivo",$cabeceras);
    
    
mail($email,"$asunto","$respuesta$cuerpo",$cabeceras1); 

echo 
"<div class='amarillo10'>el mensaje ha sido enviado.</div><br>Gracias...<br><br>
"

espero que puedas ayudarme+

mil gracias

Peron el codigo estaba mal jejeje

va de nuez

Código:
  <input type="hidden" name="email" id="email" value="<? ''.$data["email"]. ';' ?>" /></td>
      <tr>
        <td align="right">Correos:</td>
        <td>&nbsp;</td>
        <td align='left'>
        <? $result = mysql_query("SELECT * FROM usuarios WHERE status= 'Activa' order by id"); 
while ($data = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
echo ''.$data["email"].'; ';
} ?>            </td>
      </tr>
      <tr>
        <td align="right">&nbsp;</td>
        <td>&nbsp;</td>
        <td align='left'>&nbsp;</td>
      </tr>
      <tr>
      <td align="right">Asunto:</td>
      <td width="8">&nbsp;</td>
      <td align='left'><input name="asunto" type="text" id="asunto" value="" size="40" /></td>
    </tr>
    <tr>
      <td align="right" valign="top">Mensaje:</td>
      <td>&nbsp;</td>
      <td align='left'><textarea name="mensaje" id="mensaje" cols="40" rows="5"></textarea></td>
    </tr>
    <tr>
      <td align="right">&nbsp;</td>
      <td>&nbsp;</td>
      *</td>
    </tr>
    <tr>
      <td colspan="3" align="center"><input  type="image" style="margin-left:7px; border-style:none; height: 22px;"   value="boton" name="boton" src="../images/enviar.jpg"   />   </td>
    </tr>
  </table>
<? 
?>
  </form>
</div>

Última edición por GatorV; 16/10/2009 a las 09:39
  #13 (permalink)  
Antiguo 16/10/2009, 07:07
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ayuda con consulta

El contenido de la variable $email, simplemeten debe tener los correos de la forma:

[email protected], [email protected], [email protected], [email protected], .....

Y asi susecivamente separados por comas, desconosco la cantidad de correos limite pero creo que hasta 15 seria lo adecuado y luego tambien podrias usar los parametros CC y BC en la funcion mail().

Si fuesen algo como 100 o 200 correos los podrias separar la variable $correo en 3 o 4 partes y quedaria algo asi como:

Cita:
$cabeceras .= "From: $email1\r\n";
$cabeceras .= "CC: $email2\r\n";
$cabeceras .= "BC: $email3\r\n";
Saludos
Gildus
__________________
.: Gildus :.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:37.