PHP - Obtener string de item selelcionado en select poblado con bd

   
Vista:
Imágen de perfil de Bladimir

Obtener string de item selelcionado en select poblado con bd

Publicado por Bladimir (88 intervenciones) el 19/04/2015 23:18:59
Hola. Tengo un select el cual lleno a partir de un campo de una tabla de bd. El select se llena perfecto. El asunto es que como obtengo el string del item seleccionado para pasarlo a un input. El codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$sql = "SELECT DIAG FROM POOLDIAGNOSTICOS";
$item = isset($_POST['diagn']) ? $_POST['diagn'] : null ;
$link = mysqli_connect("localhost", "root", "", "Consulta") or die ('Error de conexion: ' . mysqli_error());
$result= mysqli_query($link,"SELECT DIAG FROM POOLDIAGNOSTICOS");
if ($row = mysqli_fetch_array($result)){
    echo "<select 'diagn'>";
    do {
        echo "<option value=".$row[0].">$row[0]</option>";
    }
    while ($row = mysqli_fetch_array($result));
    echo "</select>";
}
?>

Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Obtener string de item selelcionado en select poblado con bd

Publicado por xve (5518 intervenciones) el 20/04/2015 08:50:06
Hola Bladimir, para obtener dicho item, tienes que enviar el formulario (submit) o utilizar javaScript...

Exactamente que quieres hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Bladimir

Obtener string de item selelcionado en select poblado con bd

Publicado por Bladimir (88 intervenciones) el 20/04/2015 12:07:09
En primer lugar el select es creado dinamicamente por un código php. En segundo lugar el select se llena también dinamicamente, por lo tanto el número de ítem y los String de cada uno de esos ítem son diferentes. Cuando se trata de un select estático no hay problema en obtener con javascript el ítem deseado. Pero aquí es diferente y no se como obtener el ítem cuando hago click en el select. No se si me expliqué.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Obtener string de item selelcionado en select poblado con bd

Publicado por xve (5518 intervenciones) el 20/04/2015 16:59:44
Hola Bladimir, te has explicado perfectamente, pero no tiene nada que ver que el formulario se cree con PHP, Java, Python, o cualquier otro lenguaje... al navegador, siempre llega código HTML y javascript, por lo que siempre puedes obtener cualquier valor de la pagina web con JavaScript.

Nos puedes mostrar el formulario que llega en formato PHP?? te indicare como obtener el valor seleccionado, o cualquier otro valor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Bladimir

Obtener string de item selelcionado en select poblado con bd

Publicado por Bladimir (88 intervenciones) el 20/04/2015 17:28:36
El codigo php es le mostrado arriba. Cuando ejecuto la pagina web ella tiene el siguiente codigo fuente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 
  <title>RHM</title>
  </head>
     <body>
 
	 <form name="elegir" action="#" method="post" onsubmit="return comprobar()">
 
  	  <fieldset>
	   <legend>
	    <b> Diagnosticos </b>
	   </legend>
	     <p>
	     <fieldset>
	   <legend>
	     Nuevo dianostico:
	   </legend>
	     <p> Ingrese nuevo diagnostico:
	     </b><input type="text" name="neodx" id="neodx"/> <input name="guardardx" id="guardardx" type="submit" value="Guardar" />
	    </p>
	    </p>
	</fieldset>
	<p></p>
	<fieldset>
	   <legend>
	     Editar diagnostico:
	   </legend>
	    <p> Seleccione diagnostico:
	     </b>
 
	           <select 'diagn'><option value=Cardiopatia Hipertensiva>Cardiopatia Hipertensiva</option><option value=Hiperinsulinismo>Hiperinsulinismo</option><option value=HTA estadio 2 segun 7mo JNC>HTA estadio 2 segun 7mo JNC</option></select>	  <input name="guardardx" id="guardardx" type="submit" value="Guardar" />
	    </p>
	    </p>
	</fieldset>
	 </p>
	    </p>
	</fieldset>
	 <p></p>
	 <fieldset>
	   <legend>
	    <b> Farmacos: </b>
	   </legend>
	    </p>
	</fieldset>
	<input name="sex" type="text" id="sexo"/>
	</p>
 
	 </form>
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alberto

Obtener string de item selelcionado en select poblado con bd

Publicado por Alberto (222 intervenciones) el 20/04/2015 18:01:46
Hola...

Como comentaba el compañero xve, no importa como llenes el <select> al final de cuentas los navegadores interpretaran las etiquetas y mostraran el elemento correspondiente como HTML. Pasando al punto principal, es lo mismo que recuperar cualquier elemento, lo único que cambia en esta ocasión es que en vez de mostrar una tabla para el resultado simplemente necesitas mostrar el valor de ese element en una caja de texto. Te proporciono un ejemplo sencillo pero funcional...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<html>
	<head>
		<title>Tablas</title>
	</head>
	<body>
		<form action="#" method="post">
			<select name="cboCurso">
				<?php
					$conn = mysql_connect("localhost","root","");
					mysql_select_db("practicas",$conn);
					$curso = mysql_query("SELECT * FROM usuario",$conn);
					while($rowcurso = mysql_fetch_array($curso)){
						echo "<option value='".$rowcurso[0]."'>".$rowcurso[1]."</option>";
					}
				?>
			</select>
			<input type="submit" value="Enviar"/>
		</form>
		<input type="text" value="<?php $valor = isset($_POST['cboCurso']) ? $_POST['cboCurso'] : null; echo $valor;?>">
	</body>
</html>

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos. Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Obtener string de item selelcionado en select poblado con bd

Publicado por xve (5518 intervenciones) el 20/04/2015 19:50:53
Hola Bladimir, revisa el ejemplo que te ha adjuntado Alberto...

Si revisas tu código, tienes varios errores...

1
<select 'diagn'>
Esto no puede ser... tendria que ser como:
1
<select name='diagn'>
Si no dispones de un nombre, no sabrás que valor hay seleccionado por medio del envío del formulario.

1
<option value=Cardiopatia Hipertensiva>
Esto tampoco puede ser... tendria que ser como:
1
<option value="Cardiopatia Hipertensiva">
Aunque aquí te recomiendo utilizar los índices, no los textos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Obtener string de item selelcionado en select poblado con bd

Publicado por JOSE LUIS (33 intervenciones) el 20/04/2015 22:45:52
Es cierto lo que dicen el nombre del select está mal puesto, falta específicamente el atributo "name=" no podrías nunca obtener los valores ya que para java ese elemento no tiene nombre. Si llamaras por ejemplo a document.getElementsByName('diagn').value devolvería un error diciendo que no se puede leer la propiedad value del objeto porque no existe. Lo mismo con la propiedad value de cada item. Creo que el chrome te agrega solo las comillas pero cuando encuentra un espacio la cierra es decir, si tu cadena dice value=juan perez chrome cortaria asi value="juan" perez. Espero que te haya servido. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Bladimir

Obtener string de item selelcionado en select poblado con bd

Publicado por Bladimir (88 intervenciones) el 21/04/2015 01:30:56
Gracias a todos por la ayuda. Los comentarios y aportes de cada uno contribuyeron a encontrar la solucion. Modificando un poco el codigo de acuerdo a los sugerido por Alberto y jose Luis pude dar con la solucion. Fue clave el sacar la linea <select name='diagn'> fuera del codigo php, ya que permitió asingnar la propiedad onclick al select. al hacer click llamo a una funcion en javascript llamada Editardx() que me permite obtener el string deseado. Tambien se puede lograr lo mismo con php, tal como se sugiere, y asi tambien funciona; solo que tenia que usar un boton de tipo submit para ello lo que implica que la pagina se recarga y aparece en el select el primer item listado y no el seleccionado por mi. Para quienes pueda ser util les anexo el codigo final:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 
  <title>RHM</title>
  </head>
  <script type="text/javascript">
    function emerger(){
        open("http://localhost/RHM/Editardiag.php",'','top=300,left=300,width=300,height=300');
    }
    function Editardx(){
    	lista = document.elegir.diagn;
        elegido = lista.selectedIndex;
        opcion = lista.options[elegido];
        Concepto = opcion.value;
        probar = opcion.text;
        document.body.style.fontFamily = Concepto;
        escribe = document.getElementById("probar");
        escribe.value = probar;
    }
  </script>
     <body>
 
	 <form name="elegir" action="#" method="post" onsubmit="return comprobar()">
 
  	  <fieldset>
	   <legend>
	    <b> Diagnosticos </b>
	   </legend>
	     <p>
	     <fieldset>
	   <legend>
	     Nuevo dianostico:
	   </legend>
	     <p> Ingrese nuevo diagnostico:
	     </b><input type="text" name="neodx" id="neodx"/> <input name="guardardx" id="guardardx" type="submit" value="Guardar" />
	    </p>
	    </p>
	</fieldset>
	<p></p>
	<fieldset>
	   <legend>
	     Editar diagnostico:
	   </legend>
	    <p> Seleccione diagnostico:
	     </b>
	           <select name="diagn" id="diagn" onclick="Editardx()">
	           <?php
	             $link = mysqli_connect("localhost", "root", "", "Consulta") or die ('Error de conexion: ' . mysqli_error());
            	$result= mysqli_query($link,"SELECT DIAG FROM POOLDIAGNOSTICOS");
                if ($row = mysqli_fetch_array($result)){
 
                 do {
                  echo "<option value=".$row[0].">$row[0]</option>";
                }
                while ($row = mysqli_fetch_array($result));
 
               }
              ?>
              </select>
              <?php
              $longitdx = isset($_POST['probar']) ? $_POST['probar'] : null ;
              $valor = isset($_POST['diagn']) ? $_POST['diagn'] : null;
              if (strlen($longitdx)>1) {
              $link = mysqli_connect("localhost", "root", "", "Consulta") or die ('Error de conexion: ' . mysqli_error());
              $result= mysqli_query($link,"SELECT CODIGO FROM POOLDIAGNOSTICOS WHERE APELLIDO='$valor'");
 
              }
              ?>
	  <input type="text" name="probar" id="probar" value="<?php $valor = isset($_POST['diagn']) ? $_POST['diagn'] : null; echo $valor;?>"> </body>
	   <input name="guardardx" id="guardardx" type="submit" value="Guardar" />
	    </p>
	    </p>
	</fieldset>
	 </p>
	    </p>
	</fieldset>
	 <p></p>
	 <fieldset>
	   <legend>
	    <b> Farmacos: </b>
	   </legend>
	    </p>
	</fieldset>
	<input name="sex" type="text" id="sexo"/>
	</p>
	<?php
      $dx = isset($_POST['neodx']) ? $_POST['neodx'] : null ;
            if (strlen($dx)>1) {
             	$link = @mysql_connect("localhost", "root", ""); //Conectar con el servidor
             	$basedatos = "Consulta";
            	mysql_select_db($basedatos, $link);
            	mysql_query("INSERT INTO POOLDIAGNOSTICOS(DIAG)VALUES('$dx')",$link);
            	mysql_close($link);
            	//echo "<h4 align='center'>El diagnostico se ha guardado con éxito</h4>";            	
            }
?>
    <input name="prueba" id="prueba" type="button" value="Prueba" onclick="emerger()" />
 
	 </form>
</body>
 
</html>

Gracias a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Obtener string de item selelcionado en select poblado con bd

Publicado por JOSE LUIS (33 intervenciones) el 21/04/2015 01:42:16
esta buenisimo que te haya funcionado. Agrego que si lo hacés con php y el submit podés en el proceso de carga donde se genera el option para el select poner esto "if (isset($_POST['diagn']) && $_POST['diagn']==$row[0]){echo " selected ";}

con esto hacés que siempre se ponga seleccionado el elemento que estaba antes de hacer el submit del form ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Bladimir

Obtener string de item selelcionado en select poblado con bd

Publicado por Bladimir (88 intervenciones) el 21/04/2015 02:18:24
ok. Gracias. No sabia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar