Foros del Web » Programando para Internet » PHP »

generar select con opction de DB

Estas en el tema de generar select con opction de DB en el foro de PHP en Foros del Web. Hola Maestros: Tengo un problemilla, y se que ustedes me podria ayudar. Sucede que debo generar campos select dependiendo de una accion(esta parte ya la ...
  #1 (permalink)  
Antiguo 07/08/2008, 15:55
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Pregunta generar select con opction de DB

Hola Maestros:

Tengo un problemilla, y se que ustedes me podria ayudar.

Sucede que debo generar campos select dependiendo de una accion(esta parte ya la tengo hecha), el problema entra en que los genero desde javascript mediante innerHTML, pero los option de este select debo tomarlos de una tabla en mysql, y obvio que no puedo consultarlo desde javascript.
Como me recomiendan que consulte este valor para poder desplegarlo en el innerHTMl en javascript.

Intente consultarlo en php y enviarlo como una cadena como parametro pero las comillas me daban problemas ya que lo colocaba en el onclick de un boton.
Tambien intente colocandolo en un array y enviarlo por esta misma funcion del onclick pero tuve problemas tambien, ya sea cambiandola a un array de javascript antes del envio o simplemente enviandola como un array php.

Que creen que debo hacer??
Ya llevo como 3 horas golpeandome la cabeza con esto

Muchas Gracias Compañeros....
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #2 (permalink)  
Antiguo 07/08/2008, 16:36
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: generar select con opction de DB

mm haber si entendi bien lo que deseas hacer es que cada que seleccionas un combo el siguiente cambie de opcion?? es como cuando seleccionas el estado y deseas q aparezca el municipio??

Pero deseas hacerlo desde javascirpt o desde php, por que encontre la forma de hacerlo con las dos
  #3 (permalink)  
Antiguo 07/08/2008, 22:19
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: generar select con opction de DB

Tabla menu

id
nombre
link


Query

SELECT * FROM menu ORDER BY id DESC;

Código PHP:
<?

function  select_menu()
{
  
$sql "SELECT * 
              FROM menu 
              ORDER BY id 
              DESC"
;

  
$query mysql_query($sql);

 echo 
"<select>";
 while(
$data mysql_fetch_array($query))
 {
   

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

 echo 
"</select>";
 
  return;






?>
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #4 (permalink)  
Antiguo 08/08/2008, 07:23
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: generar select con opction de DB

Hola compañeros al parecer no me he explicado bien.
1. Tengo un combobox que tiene todos los servicios ofrecidos por la empresa, si el usuario desea contratar uno o varios de estos servicios simplemente los selecciona y los pasa a otro combobox(esta parte ya funciona).
2. Cuando esto sucede, se debe generar una fila en otra tabla, la cual tiene 3 columnas, la primera el nombre del servicio que acaba de contratar, la segunda un combobox que sera la cantidad de productos o calidad del servicio(este combobox esta en una tabla en la DB), y la tercera un simple input de tipo text.

El primer punto funciona correctamente, el segundo solo hasta la parte de generar las filas de la tabla, esto lo hago en javascript, insertando los tr y td y su respesctivo codigo html con innerHMTL, el problema que tengo es porque los options del select los debo tomar de una tabla en mysql y desde javascript no puedo realizar consultas(eso lo tengo bn claro).

Que me recomiendan para obtener los campos a desplegar como options del select que genero dinamicamente en una funcion javascript??

Gracias por su ayuda y espero haberme explicado esta vez.
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #5 (permalink)  
Antiguo 08/08/2008, 07:29
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: generar select con opction de DB

La solución para eso es ajax, tienes un problema de listas dependientes.
__________________
My path is lit by my own fire, I only go where I desire
  #6 (permalink)  
Antiguo 08/08/2008, 07:50
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: generar select con opction de DB

Bueno compañeros, muchas gracias por sus opiniones, especialmente a ti foreverOdd lo he hecho con ajax como me haz dicho y ha salido de lujo!!!
pondre el codigo dentro de un momento por si alguien lo necesita!!

Gracias Maestros!!!
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 08/08/2008, 07:58
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: generar select con opction de DB

Esto es el javascript para pasar de un combobox a otro y luego generar y anular filas dependiendo, si se adiciona o se quita de un combobox.
Cita:
<script type="text/javascript">
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function pasar(origen, destino) {
obj=document.getElementById(origen);
if (obj.selectedIndex==-1) return;
valor=obj.value;
numero=obj.selectedIndex;
txt=obj.options[obj.selectedIndex].text;
obj.options[obj.selectedIndex]=null;
obj2=document.getElementById(destino);
opc = new Option(txt,valor);
eval(obj2.options[obj2.options.length]=opc);
if(origen=='servicios'){suma(txt, valor);}
if(origen=='contratados'){resta(numero);}
}
function suma(texto, numero) {
var miTabla = document.getElementById("desarrollo");
var fila = document.createElement("tr");
var celda1 = document.createElement("td");
var celda2 = document.createElement("td");
var celda3 = document.createElement("td");
celda1.innerHTML = texto;
//
ajax=objetoAjax();
cadenaFormulario = valor+'='+encodeURI(numero);
ajax.open("POST", 'menuDesarrollo.php', true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4) {
//mostrar resultados en esta capa
celda2.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//enviando los valores
ajax.send(cadenaFormulario);
celda3.innerHTML = '<input type="text" name="abierto'+numero+'">';
fila.appendChild(celda1);
fila.appendChild(celda2);
fila.appendChild(celda3);
miTabla.appendChild(fila);
}
function resta(num) {
num=num+1;
var miTabla = document.getElementById("desarrollo");
miTabla.removeChild(miTabla.getElementsByTagName(" tr")[num]);
}
</script>
Ahora, colocare el trozo de codigo del formulario donde estan los combobox y la tabla en la cual se generan las filas

Código HTML:
.........................................
<td width="38%">
            <select name="servicios" id="servicios">
            	<?php
				for($ori1=0; $ori1<$numOrigen1; $ori1++)
					{
						$OriRow1=mysql_fetch_array($selOrigen1);
						echo '<option value="'.$OriRow1['id'].'">'.$OriRow1['servicio'].'</option>';
					}
				?>
            	</select>
            <?php
            $OptDesa=mysql_query("select * from desarrollo order by desarrollo desc");
			$numOptDesa=mysql_num_rows($OptDesa);
			$opciones='';
			for($op=0; $op<$numOptDesa; $op++)
			{
				$rowOptDesa=mysql_fetch_array($OptDesa);
				//tratar de hacer con ajax, colocando la consulta en otro archivo
            }
			?>
                <br /><br />
                
                
                <input type="button" value="Agregar servicio &gt;&gt;" onclick="pasar('servicios', 'contratados');" />
				
			</td>
            
			<td width="37%">
            <select name="contratados" id="contratados">
            </select>
            <br /><br /><input type="button" value="&lt;&lt; Quitar servicio" onclick="pasar('contratados', 'servicios');" /> 
            </td>
      </tr>
</table>
<table align="center" width="60%" id="desarrollo">
<tr>
	<th width="50%">Servicio</th>
    <th width="35%">Desarrollo</th>
    <th width="15%">Abierto</th>
</tr>
</table>
</form> 
Y ahora en otro archivo, el codigo php que se llama desde ajax para generar el combobox

Código PHP:
...........................parte de conexion................
$valor=$_POST['valor'];
mysql_select_db($database_protecniaMySql$protecniaMySql);
$sql=mysql_query("SELECT * FROM desarrollo order by desarrollo desc");

$numDesa=mysql_num_rows($sql);
//muestra los datos consultados en los campos del formulario
echo'<select name="desarrollo"'.$valor.'>';
for(
$i=0$i<$numDesa$i++)
{
    
$row mysql_fetch_array($sql);
    echo
'<option value="'.$row['id'].'">'.$row['desarrollo'].'</option>';
}
echo
'</select>'
espero les sirva.....
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
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 14:53.