Foros del Web » Programando para Internet » PHP »

Problema for() if() y comparación de valores

Estas en el tema de Problema for() if() y comparación de valores en el foro de PHP en Foros del Web. Espero que me puedan ayudar... Tengo un código similar a este en una página web Código: <HTML><HEAD><TITLE></TITLE></HEAD><BODY> <select name="optname" id="optID" disabled="disabled" class="abc"> <option value="SelectOption">Select any ...
  #1 (permalink)  
Antiguo 02/03/2010, 16:45
 
Fecha de Ingreso: diciembre-2006
Ubicación: Lima
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Problema for() if() y comparación de valores

Espero que me puedan ayudar...
Tengo un código similar a este en una página web

Código:
<HTML><HEAD><TITLE></TITLE></HEAD><BODY>
<select name="optname" id="optID" disabled="disabled" class="abc">
	<option value="SelectOption">Select any Option</option>
	<option value="100001">Valor1</option>
	<option value="100002">Valor2</option>
	<option value="100003">Valor3</option>
	<option value="100004">Valor4</option>
	<option value="100005">Valor5</option>
	<option selected="selected" value="100006">Valor1 Valor2</option>
</select>
</HTML>
y este código PHP (adapatado para el código HTML de arriba)

Código:
<?php

$file = file("http : // cualquierdominio . net /rem1 .htm");
for ( $x = 3 ; $x < 10 ; $x ++) {
   $int = substr_replace(substr_replace($file[$x], '', 0, 19), '',8, 39);
   echo $int . "<br> \n";
   if ($int=="selected") {
   $inn = $int;
   break;
   }
   else {
   $inn = "Valor no encontrado";
   }
}

echo $inn ;

?>
Cuando indico que imprima los valores lo hace bien es decir la variable "$int" tomó el valor "selected" que es el que necesito; pero cuando hago la comparación con "if()" me imprime "Valor no encontrado" es decir que la variable "$int" nunca tomó el valor "selected".

El resto de mi código no va a funcionar mientras "$int" no devuelva el valor "selected" para que "$inn" tome su valor y el resto del código funcione.
¿Qué esta mal?
Gracias
  #2 (permalink)  
Antiguo 02/03/2010, 16:53
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Problema for() if() y comparación de valores

Esto no es correcto:

Código PHP:
Ver original
  1. if ($int=="selected") {
El valor seleccionado es lo que hay en value="valordeloption". Por tanto, sería algo así:
Código PHP:
Ver original
  1. if ($int==100005) {
  2.  
  3. .......
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 02/03/2010, 17:43
 
Fecha de Ingreso: diciembre-2006
Ubicación: Lima
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
Exclamación Respuesta: Problema for() if() y comparación de valores

Creo que me expliqué mal y por otro lado
aunque sea te tomaste la molestia de hacer copy paste con el código que envié para probarlo? y luego probar tu sugerencia?

hasta donde tengo entendido para obtener un valor en la forma que me indicas tendria que recibirlos con un argumento _$POST[]

yo no estoy recibiendo nada, estoy leyendo un archivo HTML fila por fila, una de esas filas tiene la palabra "selected" cuando substr_replace() devuelva esa palabra $x toma el número de fila, para ser procesado posteriormente.

pero creo que if() no esta comparando la palabra "selected" (resultado final de substr) sino substr_replace() en conjunto.

...

espero que con eso me entiendan
  #4 (permalink)  
Antiguo 02/03/2010, 18:01
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema for() if() y comparación de valores

Creo que no estas haciendo bien los replace, solo cortas hasta el final "aparente" de la cadena, pero no tomas en cuenta lo que puede haber despues de cerrar el </option>..

(en lugar de hacer un echo prueba con un var_dump de $int y veras a lo que me refiero)
  #5 (permalink)  
Antiguo 03/03/2010, 17:11
 
Fecha de Ingreso: diciembre-2006
Ubicación: Lima
Mensajes: 35
Antigüedad: 17 años, 4 meses
Puntos: 0
De acuerdo Respuesta: Problema for() if() y comparación de valores

Pues ya esta solucionado gracias darkasecas el problema estaba que la variable tomaba el final incluyendo imagino que un caracter que origina una nueva linea asi que si se deja exactamente el código como esta la solucion seria

cambiar

Cita:
if ($int=="selected") {
$inn = $int;

por

Cita:
if ($int=="selected
") { //sin dejar espacio al inicio de esta linea porque sino no funciona xD
$inn = $int;
o también se puede solucionar cambiando

Cita:
$int = substr_replace(substr_replace($file[$x], '', 0, 19), '',8, 39);
por


Cita:
$int = substr_replace(substr_replace($file[$x], '', 0, 19), '',8, 51);
el 51 es un numero más largo de caracteres de los obtenidos asi que elimina también ese caracter que no aparece que origina una nueva linea xD

Gracias!

Etiquetas: Ninguno
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 00:55.