Foros del Web » Programando para Internet » PHP »

Ayuda por favor

Estas en el tema de Ayuda por favor en el foro de PHP en Foros del Web. Hola a todos! Os adjunto todo el código de mi página por si alguien me puede echar una manita, el problema que tengo es que ...
  #1 (permalink)  
Antiguo 01/05/2008, 10:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 6 meses
Puntos: 1
Ayuda por favor

Hola a todos!

Os adjunto todo el código de mi página por si alguien me puede echar una manita, el problema que tengo es que quiero sacar un listado con los componentes que hay en una práctica según se selecciona en un iframe superior y poder tener un hueco para poder introducir otro componente más...no sé si me explico el caso es que al hacer el Select * from Kit where practica = practica...no me escribe ningun dato... ¿alguien sabría decirme por qué?

Muchas gracias

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Laboratorio de Electrónica</title>
<style type="text/css">
<!--
body {
	background-color: #C2D0DC;
	
}
.Estilo1 {color: midnightblue}
#capa_CI {	position:absolute;
	width:924px;
	height:89px;
	z-index:3;
	left: 294px;
	top: 122px;
	visibility: hidden;
}
-->
</style>

<script language="javascript"> 


function datos(){

var variable = window.parent.frames["kit_superior"].window.document.getElementById("practica");  
var val = variable.options[variable.selectedIndex].text;
document.getElementById("mipractica").value = val;
document.getElementById("mipracticaenvio").value = val;



}



</script>

<body>

<?php
	echo "<input type='hidden' name='mipractica' id='mipractica'> \n"; 
	
	$practica = $_POST['mipractica'];
	
	$link=mysql_connect("localhost","root","");
	mysql_select_db("laboratorio",$link);	
	
	$result = mysql_query("SELECT * FROM kit where Practica = '$practica'");
		
	echo "<br>";	
	echo "<table border = '0' align='center' class='Estilo1'> \n";
	echo "<tr> \n";
	echo "<td><b>Seleccione el componente que desea: </b></td> \n";
	
	echo "<tr> \n";
	
	echo "<tr> \n";
	
	echo "<tr> \n";
	
	echo "</table> \n";

	echo "<table border = '1' bordercolordark='#000066' align='center' class = 'Estilo'> \n";

	echo "<tr> \n";

	echo "<td align= 'center' class = 'Estilo1'><b>Componente</b></td> \n";

	echo "<td align= 'center'  class = 'Estilo1'><b>Unidades</b></td> \n";

	echo "<td colspan='2' align= 'center'  class = 'Estilo1'> <b> Botones </b></td> \n";

	echo "</tr> \n";

	while ($row = mysql_fetch_row($result)){
	
		
		echo "<tr> \n";
		echo "<td> ";
		$sql = "SELECT componente, Desc1, Desc2, Comentario FROM componentes where codigo_componente = '$row[2]'"; 
		$resul = mysql_query($sql, $link) or die ( mysql_error() ); 
		$opt = '<option value = "%s">%s %s %s %s</option>'; 
		// El especificador s del sprintf presenta una cadena de caracteres.
        //RECORRIDO DEL CURSOR 
	while($row2 = mysql_fetch_array($resul)) 
	{  
 	  	echo sprintf($opt, $row2[0],  $row2[0], $row2[1], $row2[2], $row2[3]); 
	} 
           
		echo "</td>"; 
		echo "<td>$row[3]</td> \n";
		echo "</form> \n";
		
		echo "</tr> \n";
	}
	echo "<tr> \n";
	
	   
	  ?>

 
	  
	  
        <th scope="row"><div align="center">
	<form name="formulario2" method="post" action="anadir_kit.php" onmouseover="datos();">
	
	<input type='hidden' name='mipracticaenvio' id='mipracticaenvio'> 
		 
	<select name="componentes" id="componentes" onchange="document.getElementById('codcomponente').value=this.options[this.selectedIndex].value">

 
<?php 
                       
//OBTENER LOS VALORES DE LAS FILAS 
	$sql = "SELECT codigo_componente, componente, Desc1, Desc2, Comentario FROM componentes ORDER BY codigo_componente ASC"; 
	$resul = mysql_query($sql, $link) or die ( mysql_error() ); 
	$opt = '<option value = "%s">%s %s %s %s</option>'; 

// El especificador s del sprintf presenta una cadena de caracteres.
             
//RECORRIDO DEL CURSOR 
while($row = mysql_fetch_array($resul)) 
{  
   echo sprintf($opt, $row[0],  $row[1], $row[2], $row[3], $row[4]); 
} 
           
?> 
 </select></td> 
 </select></td> 
 <input type="hidden" name="codcomponente" id="codcomponente" />


				
				
		 
		   
        </div></th>
        <td><div align="center">
          <input name="unidades" type="text" id="unidades" />
        </div></td>
        <td><div align="center">
          <input type="submit" name="Alta" value="Alta"/>
		  
        </div></td>
       </form>
	   
      </tr>
	  <tr></tr>
      
  
</table>

</table>


</body> 
</html>
  #2 (permalink)  
Antiguo 01/05/2008, 11:10
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 20
Antigüedad: 16 años
Puntos: 2
Re: Ayuda por favor

Hola yo te diria que en lugar de usar sprintf y primero vuelques los resultados de una forma mas simple en lugar de ponerlos en un select para ver si los traes bien y si no es eso es que el problema lo tienes en el javascript. Trata de ver el codigo por separado porque lo que intentas hacer es bastante complejo todo junto, ve avanzando hasta detectar bien en donde se queda ya que analizar todo el codigo junto se complica un poco para ayudarte.

Saludos
  #3 (permalink)  
Antiguo 01/05/2008, 11:15
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Ayuda por favor

Hola Nico!

Acabo de descubrir donde se queda pillado... digamos que al hacer
Código PHP:
<?php
    
echo "<input type='hidden' name='mipractica' id='mipractica'> \n"
    
    
$practica $_POST['mipractica'];
    
    
$link=mysql_connect("localhost","root","");
    
mysql_select_db("laboratorio",$link);    
    
    
$result mysql_query("SELECT * FROM kit where Practica = '$practica'");
No me está recogiendo el valor de la práctica... ¿sabrías como puedo hacer para recoger una variable que está en un iframe? El valor de la práctica está en un iframe superior entonces claro, cuando intento acceder a él no puedo,... sabes alguna manera?

Esto es un jaleo...

Muchas gracias de antemano!
  #4 (permalink)  
Antiguo 01/05/2008, 11:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: Ayuda por favor

por lo que veo, no llegas a enviar en un form el input name="mipractica".

Lo imprimes en pantalla (aunque esté oculto) pero no haces nada con él.
__________________
"Prefiero callar como un tonto, que hablar para confirmarlo"
Espectacular Portal en crecimiento: Artículos http://www.blorgia.com
  #5 (permalink)  
Antiguo 01/05/2008, 11:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Ayuda por favor

Creo que no, la variable mipractica es una variable oculta que intento coger desde Javascript pero claro me llega vacía por que no sé acceder a ella...¿sabes como hacerlo?
  #6 (permalink)  
Antiguo 01/05/2008, 11:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 6 meses
Puntos: 1
Pregunta Llamar a función Javascript desde PHP

Hola!!!

Alguien sabe cómo llamar a una función javascript desde PHP?
  #7 (permalink)  
Antiguo 01/05/2008, 11:46
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 20
Antigüedad: 16 años
Puntos: 2
Re: Llamar a función Javascript desde PHP

Que seria llamar a un js desde un php por favor explicate mejor en un ejemplo, lo comun es que un elemento de la pagina HTML llame a una funcion js o que directamente en el onload de la pagina se llame.

Saludos
  #8 (permalink)  
Antiguo 01/05/2008, 11:50
 
Fecha de Ingreso: abril-2008
Ubicación: Argentina
Mensajes: 20
Antigüedad: 16 años
Puntos: 2
Re: Ayuda por favor

Yo te diria que levantes esa pregunta en el subforo de js, yo lamentablemente no soy un experto en js y no te quiero decir pavadas. Tambien podrias ver de evitar el iframe y que se recargue toda la pagina ahi si seria mas facil acceder al valor, pero eso ya seria cambiarte todo lo que estas haciendo. Ojala te puedan ayudar en el subforo de js.

Saludos
  #9 (permalink)  
Antiguo 01/05/2008, 11:53
 
Fecha de Ingreso: octubre-2006
Mensajes: 128
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: Llamar a función Javascript desde PHP

Hola!!

Mira lo que tengo que hacer es lo siguiente:

Tengo esta función javascript que lo que hace es acceder a una variable que tengo en un iframe superior, al hacer un alert, esto lo devuelve genial, el problema está en que quiero volcar ese contenido a una variable de php para después hacer un select dependiendo de ese valor....
Código:
function datos(){

var variable = window.parent.frames["kit_superior"].window.document.getElementById("practica");  
var val = variable.options[variable.selectedIndex].text;
document.getElementById("mipractica").value = val;
document.getElementById("mipracticaenvio").value = val;

}
Al hacer este código de php no me recoge nada en la variable mipractica porque lógicamente no estoy llamando a la función y no sé como hacerlo...ese es el problema...¿sabes como arreglarlo?

GRACIAS!

Código PHP:
<?php
    
echo "<input type='hidden' name='mipractica' id='mipractica'> \n"
    
    
$practica $_POST['mipractica'];
    
    
$link=mysql_connect("localhost","root","");
    
mysql_select_db("laboratorio",$link);    
    
    
$result mysql_query("SELECT * FROM kit where Practica = '$practica'");
  #10 (permalink)  
Antiguo 01/05/2008, 14:00
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 15 años, 11 meses
Puntos: 8
Re: Llamar a función Javascript desde PHP

Si lo que pretendes es realizar un comando JS desde PHP, asi:

Código PHP:
<?php
...
echo(
"<script");
...
echo(
"</script>");
?>
Para lo que tu quieres, podrías poner un textarea donde se imprimiese la variable JavaScript y luego recogerlo con $_POST o con $_GET
  #11 (permalink)  
Antiguo 01/05/2008, 15:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Llamar a función Javascript desde PHP

Hola Rebe22,

Para hacer lo que necesitas, debes de emplear AJAX para obtener el valor.

Saludos.

Temas unidos, por favor sigue el hilo en el mismo tema.

Última edición por GatorV; 01/05/2008 a las 15:55
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 22:31.