Foros del Web » Programando para Internet » PHP »

copiar select multiples , javascript, update

Estas en el tema de copiar select multiples , javascript, update en el foro de PHP en Foros del Web. Hola como van miren tengo un problemita con los select multitple y javascript en form para modificar datos de un docente, en donde se puede ...
  #1 (permalink)  
Antiguo 09/01/2009, 16:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
copiar select multiples , javascript, update

Hola como van miren tengo un problemita con los select multitple y javascript en form para modificar datos de un docente, en donde se puede modificar los carreras q tiene.Lo que quiero hacer es copiar las selecciones de un select1 que se cargan de base de datos a otro select 2 que al inicio tiene la carga de las carreras q tiene asignadas, y eliminarlo de este cuando lo desee mediantes botones agregar y sacar respectivamente, eso funciona perfecto, el problema esta, que quiero que cuando haga un submit y me muestre error de otros datos mal cargados, la lista del select 2 se mantenga como la habia estado creando, por eso quiero copiar las opciones de ese select en una variable tabla que es una matriz porque voy a necesitar hacer eso para varios select multiple,tal q cuando hay submitt se cargue esas opciones, puedo solucionar asiendo update de carreras , y que se cargue de lo q saca de base de datos para las carreras q tiene asignado al docente, pero no quiero eso .Aqui les dejo el codigo
Código PHP:
/********************** Titulos ************************/
        
echo "<select name='a' id='a' size='6' multiple>";
 
        if(
$rdo=mysql_query("select * from carreras order by carr_nom") or die("Error en carreras <br>MySQL dice: ".mysql_error()));
 
         while(
$fila=mysql_fetch_array($rdo))
              {
                  echo 
"<option value=".$fila['carr_id'].">".$fila['carr_nom']."</option>";
              }
        echo 
"</select>";
 
 
        echo
"<img src='imagen/botones/fondodeA+.jpg' alt='agregar' onClick=\"pasar_valores('a','b');copiarSelect('b');\"/>";
        echo
"<img src='imagen/botones/fondodeA-.jpg' alt='sacar' onClick=\"eliminar_valores('b');copiarSelect('b');\"/>";
 
        echo 
"<script language='Javascript'>document.write(document.getElementById('a').options[0].text);</script>";
        echo 
"<select name='b' id='b' size='6' multiple>";
 
        if(empty(
$subDocent))
           {
            if(
$rdo=mysql_query("select * from docentes as D left join docentes_carreras as X on D.docent_id=X.docent_id left join carreras as C on X.carr_id=C.carr_id where C.facu_id>0 and D.docent_id=$iddocent") or die("Error en Docentes carreras <br>MySQL dice: ".mysql_error()));
 
            while(
$fila=mysql_fetch_array($rdo))
               {
                  echo 
"<option value=".$fila['carr_id'].">".$fila['carr_nom']."</option>";
               }
            echo 
"</select>";      
            }
         else
            {
             echo 
"</select>";    
             echo 
"<script language='Javascript'>  document.write(tabla[0].options[0].text);</script>";
             echo 
"<script language='Javascript'>  document.write /* probando aaui deberia ir las funcion q muestre las opciones*/(tabla.lenght);</script>";
 
            }    
 
 
          echo 
"<script language='Javascript'>  document.write(tabla[0].options[0].text);</script>"
en javascript
Código HTML:
<script language='Javascript'> 
var tabla= Array();
	
 function pasar_valores(de,a)
 {
  var de = document.getElementById(de);
  var a = document.getElementById(a);
  for(var i = 0, newOptions=[]; i < de.options.length; i++ )
     {
      if( de.options[i].selected )
	    { newOptions.unshift({name:de.options[i].text,value:de.options[i].value}); 
		}
	 }
	 
  if( newOptions.length > 0 )
    {
      for(var j = 0, insert = true; j < newOptions.length; j++, insert = true ){
          for( var i = 0; i < a.options.length; i++ )
		  {
           if( a.options[i].value == newOptions[j].value )
		     {
              insert = false;    break;
             }
          }
          if( insert == true )
		   {
             var newOption = document.createElement('option');
             newOption.value = newOptions[j].value;
             newOption.text  = newOptions[j].name;
             if(window.ActiveXObject){a.add(newOption);
			}
		  else{
		      a.appendChild(newOption);
			  }
         }
       }
      }

     }

    function eliminar_valores(de)
	 {
      var de = document.getElementById(de);
      for(var i = 0, remove = []; i < de.options.length; i++ )
	     {
           if( de.options[i].selected )
		     {
              remove.unshift(de.options[i]);
             }
         }
       for(var i = 0; i < remove.length; i++ )
	    {
         if(window.ActiveXObject){de.remove(remove[i]);}
		 else{de.removeChild(remove[i]);}
        }
	
     }
	 
	 
	 function copiarSelect()
	 {
		
		for(i=0;i<arguments.length;i++) 
	       {
			 tabla[i]=document.getElementById(arguments[i]);
		   }
	 }
	 </script> 
  #2 (permalink)  
Antiguo 10/01/2009, 14:20
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: copiar select multiples , javascript, update

Hola porfa ayuda con eso o sugerencia
  #3 (permalink)  
Antiguo 10/01/2009, 14:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: copiar select multiples , javascript, update

Hola opte por esto otro pero no me funcionan, haber por fa si me ayudaaaaannn.La nueva idea es copiar directamente cada vez q se realice un submit. Aquí va el código

Código PHP:
    /********************** Titulos ************************/
        
echo "<select name='a' id='a' size='6' multiple>";
        
        if(
$rdo=mysql_query("select * from carreras order by carr_nom") or die("Error en carreras <br>MySQL dice: ".mysql_error()));
        
         while(
$fila=mysql_fetch_array($rdo))
              {
                  echo 
"<option value=".$fila['carr_id'].">".$fila['carr_nom']."</option>";
              }
        echo 
"</select>";
        
        
        echo
"<img src='imagen/botones/fondodeA+.jpg' alt='agregar' onClick=\"pasar_valores('a','b');\"/>";
        echo
"<img src='imagen/botones/fondodeA-.jpg' alt='sacar' onClick=\"eliminar_valores('b');\"/>";
        
        echo 
"<script language='Javascript'>document.write(document.getElementById('a').options[0].text);</script>";
        echo 
"<select name='b' id='b' size='6' multiple>";
        
        if(empty(
$subDocent))
           {
            if(
$rdo=mysql_query("select * from docentes as D left join docentes_carreras as X on D.docent_id=X.docent_id left join carreras as C on X.carr_id=C.carr_id where C.facu_id>0 and D.docent_id=$iddocent") or die("Error en Docentes carreras <br>MySQL dice: ".mysql_error()));
        
            while(
$fila=mysql_fetch_array($rdo))
               {
                  echo 
"<option value=".$fila['carr_id'].">".$fila['carr_nom']."</option>";
               }
            echo 
"</select>";      
            }
         else
            {
              
             echo 
"<script language='Javascript'>window.onload =pasarCopia('b');</script>";
             echo 
"</select>";    
             
         
            }    
    
         
          echo 
"<script language='Javascript'>  document.write(tabla[0].options[0].text);</script>"
en javascript
var tabla = new Array();
function pasar_valores(de,a)
{
var de = document.getElementById(de);
var a = document.getElementById(a);
for(var i = 0, newOptions=[]; i < de.options.length; i++ )
{
if( de.options[i].selected )
{ newOptions.unshift({name:de.options[i].text,value:de.options[i].value});
}
}
if( newOptions.length > 0 )
{
for(var j = 0, insert = true; j < newOptions.length; j++, insert = true ){
for( var i = 0; i < a.options.length; i++ )
{
if( a.options[i].value == newOptions[j].value )
{
insert = false; break;
}
}
if( insert == true )
{
var newOption = document.createElement('option');
newOption.value = newOptions[j].value;
newOption.text = newOptions[j].name;
if(window.ActiveXObject){a.add(newOption);
}
else{
a.appendChild(newOption);
}
}
}
}
};

function eliminar_valores(de)
{
var de = document.getElementById(de);
for(var i = 0, remove = []; i < de.options.length; i++ )
{
if( de.options[i].selected )
{
remove.unshift(de.options[i]);
}
}
for(var i = 0; i < remove.length; i++ )
{
if(window.ActiveXObject){de.removeChild(remove[i]);}
else{de.removeChild(remove[i]);}
}
};

function copiarSelect()
{

for(i=0;i<arguments.length;i++)
{
origen=document.getElementById(arguments[i]).options;
for(var j=0;j<origen.length;i++)
{
tabla[i].options[j] = new Option(origen[i]);
}

}
}
function pasarCopia(campo)
{
var origen = document.getElementById(campo); /* Para no tener que llamar a cada rato a getElementById */
for(var i=0;i<tabla[0].length;i++)
{
origen.options[i] = new Option(tabla[0][i]);
}
}
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 15:58.