PHP - condicionar si muestro o no un select

 
Vista:

condicionar si muestro o no un select

Publicado por William Muñoz (4 intervenciones) el 28/02/2019 20:23:27
Buenas tardes amigos, Gracias de antemano, tal vez mi pregunta sea muy de novato, me excuso

tengo un select que se carga con valores dinámicos, es decir, los valores del option son el resultado de un foreach que hago a un Json, el Json a su vez es una url que se arma con la mezcla de un valor fijo y una cédula que introduzco en un campo

El select se pinta siempre, sea vacío o con los valores cargados

Todo esto funciona bien, pero, lo que quiero ahora es que, si la cédula no existe, el select no se pinte, Ya cuento con una variable que me identifica la respuesta positiva o negativa del Json, por tanto me vendría bien un condicional, entiendo que es un "If - Else", pero la gran pregunta es:

¿cómo meto un segmento de html que además contiene PHP dentro de un condicional en PHP?

Les muestro mi código, (todo esto al final se pinta en otro archivo que es el que invoca a este otro para procesar la data) ¿Tendré que hacer mi condición en java script?

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
<?php
	if (isset($_GET['js_var'])) $php_var = $_GET['js_var'];
	else $php_var = "<br />js_var is not set!";
 
$url_var = 'xxx.com/datosvariables';
 
$result = $url_var . $php_var;
$url = $result ;
$data = file_get_contents($url);
$afiliados = json_decode($data,true);
///echo  $data;
 
//echo $result;
$msj = $afiliados ['codigo'];
$msj1 = $afiliados ['mensaje'];
echo $msj;
echo $msj1;
 
if ($msj !== '00') {
	//<!-- aquí debería estar mi select -->
}
	else {
        //<!-- aquí quiero levantar una modal para indicar que la cédula solicitada no está en el sístema -->
}
 
 
?>
 
<select id="selectbasic" name="selectbasic" class="form-control selectbasic">
 
			<option value="1">- - - -</option>
 
			<?php
				$data = file_get_contents($url);
				$afiliados = json_decode($data,true);
 
				foreach ( (array) $afiliados ['cursor'] as $cursor  ) {
				echo "<pre>";
				?>
 
			<option value=" <?php echo $cursor ['NOMBRE_CONTRATO']; ?>">
 
			<?php echo					$cursor ['NOMBRE_CONTRATO'];?>
 
		</option>
 
	<?php		};?>
 
</select>
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
sin imagen de perfil
Val: 1.077
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

condicionar si muestro o no un select

Publicado por YamilBracho (888 intervenciones) el 28/02/2019 20:57:30
No es buena idea mezclar codigo para el cliente con codigo del server, pero puedes cerrar el bloque php, insertar html y asi sucesivamente. Te quedaria algo como :

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
?php
	$php_var =  (isset($_GET['js_var']))  ? $_GET['js_var'] : "<br />js_var is not set!";
	$url_var = 'xxx.com/datosvariables';
	$result = $url_var . $php_var;
	$url = $result ;
	$data = file_get_contents($url);
	$afiliados = json_decode($data,true);
 
///echo  $data;
//echo $result;
 
$msj = $afiliados ['codigo'];
$msj1 = $afiliados ['mensaje'];
echo $msj;
echo $msj1;
 
if ($msj !== '00') {
?>
	<select id="selectbasic" name="selectbasic" class="form-control selectbasic">
			<option value="1">- - - -</option>
			<?php
				$data = file_get_contents($url);
				$afiliados = json_decode($data,true);
 
				foreach ( (array) $afiliados ['cursor'] as $cursor  ) {
					echo "<pre>";
				?>
					<option value=" <?php echo $cursor ['NOMBRE_CONTRATO']; ?>">
								    <?php echo$cursor ['NOMBRE_CONTRATO'];?>
					</option>
				<?php };?>
	</select>
?>
}
else {
       //<!-- aquí quiero levantar una modal para indicar que la cédula solicitada no está en el sístema -->
}
?>
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

condicionar si muestro o no un select

Publicado por William Muñoz (4 intervenciones) el 28/02/2019 21:35:32
Interesante, no funciona aún pero me das un par de luces con tu comentario, Gracias Yamil
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

condicionar si muestro o no un select

Publicado por William Muñoz (4 intervenciones) el 01/03/2019 19:19:00
Problema resuelto, la solución no podía ser más sencilla, todo el código del select que quería mostrar lo coloqué en otro archivo llamado "select_afiliados.php". Dentro del IF hice el llamado a un "include" y problema resuelto. Era más cuestión de lógica que de conocimiento técnico

Les dejo el código por si acaso alguien lo necesitara

1
2
3
4
5
6
7
8
9
<?php
if ($msj !== '00') {
 
echo '<span style="font-weight: bold; color: red;">Error</span> El titular asociado a ese número de cédula no se encuentra en nuestra base de datos';
    return true;
} else {
	include 'select_afiliados.php';
    return false;
};?>
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

condicionar si muestro o no un select

Publicado por William Muñoz (4 intervenciones) el 01/03/2019 19:21:23
Ya lo resolví, les dejo el código, súper sencillo, todo era llamar a un include que contenga el php que se quiere ejecutar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
 
if ($msj !== '00') {
 
 
 
echo '<span style="font-weight: bold; color: red;">Error</span> El titular asociado a ese número de cédula no se encuentra en nuestra base de datos';
 
    return true;
 
} else {
 
	include 'select_afiliados.php';
 
    return false;
 
};?>
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