Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/08/2008, 07:58
Avatar de the_web_saint
the_web_saint
 
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
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.