Necesito ayuda en programación PHP

Hola expertos, soy novatoen php y quisiera su ayuda por favor:
La cuestión es que realice un programilla sencillo de calcular el mayor y menor (a través de botones radio)valor de una lista de números en un control de selección múltiple, pues bien en si el programa me funciona pero con la salvedad que me muestra como respuesta es el indice de el valor encontrado como mayor o menor según escoja en los botones radio, y no se el porque si alguien me puede ayudar se lo agradecería por que llevo dándole pruebas y nada... Uds son expertos y confío en su orientación.
El programa que maneja el formulario de entrada es:
<html>
<head>
<title>OBTENER EL MAYOR O MENOR DE NUMEROS SELECCIONADOS</title>
</head>
<body>
<form action="calcular.php" method="post">
<td valign="top" align="center">
<td align="center">LISTA DE VALORES::<br />
<select name="lista[]" multiple="multiple">
<!--<select name="lista[]" multiple="multiple" size=3>-->
<option value=0>1</option>
<option value=1>4</option>
<option value=2>12</option>
<option value=3>7</option>
<option value=4>50</option>
</select><br><br>
</td>
<td align="right">
MAYOR:<input type="radio" name="opcion" value="mayor" /><br>
MENOR:<input type="radio" name="opcion" value="menor" /><br>
</td>
<br>
<input type="submit" name="enviar">
<input type= reset value="limpiar">
</form>
</body>
</html>
************************************
el codigo que hace el calculo en php es:
<?php
error _reporting(E_ALL);
&radio=tiny_mce_markerPOST['opcion'];
$lista1=tiny_mce_markerPOST['lista'];
//echo count($lista1); //esta lines es de prueba para verificar cuantos elementos estan marcados en la lista de seleccion multiple y me da resultado correcto
if($radio == "mayor" && isset ($lista1))
{
$mayor=$lista1[0];
//echo " el numero mayor aqui es:",$mayor;//esta linea es de prueba y ya desde aqui me esta mostrando es el valor que tiene el value de la opcion select
for($i=1;$i<count($lista1);$i++)
{
if($lista1[$i] > $mayor)
{
$mayor=$lista1[$i];
}
}
Echo "el numero mayor es:". $Mayor ; //aquí me muestra el valor del value que tiene el select para el numero mayor de la lista seleccionada
}
else
{
if($radio == "menor")
{
for($i=0;$i<count($lista1);$i++)
{
for($j=1;$j<=count($lista1);$j++)
{
if($lista1[$i] <= $lista1[$j]) //linea 37
{
$menor=$lista1[$i];
}
}
}
echo "<B>$menor</B>";
}
}
?>
*** otra cosa porfa,porque cuando se ejecuta el else del codigo php es decir cuando el usuario pulsa el boton radio menor , si lo notan hago otra forma de calculo que en mi concepto de logica es valido sin embargo el servidor php me envia el siguiente error:
Notice: Undefined offset :3 in C:\wamp\www\calcular.php on line 37
este error segun he investigado tiene que ver con que no me reconoce la variable lista1 como un vector pero porque si en el codigo de formulario html el select multiple en su name lo he definido como un vector es decir como lista[] y en el codigo php hago:
$lista1=$POST['lista'];
Por su ayuda mil gracias.
1

1 Respuesta

30.775 pts. Ingeniero Electrónico con énfasis en Redes de...
Varias cosas, primero en los tags options, para que puedas enviar el valor correcto, debes escribirlo así:
<option value=12>12</option>
en vez de
<option value=2>12</option>
En cuanto al problema del menor, creo que lo puedes hacer igual que el del mayor pero cambiando la lógica, es decir algo como esto:
    $menor=$lista1[0];
//Echo " el numero mayor aquí es:",$mayor;//esta linea es de prueba y ya desde aquí me esta mostrando es el valor que tiene el value de la opción select
    for($i=1;$i<count($lista1);$i++)
    {
        if($lista1[$i] < $menor)
        {
            $menor=$lista1[$i];
        }
    }
    echo "menor es <B>$menor</B>";
Por lo demás veo que el programa hace lo que debe.
Hablamos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas