Jump to content

AYUDA validar select en php


Recommended Posts

Estimados

 

Recurro a ustdes para ver si me pueden ayudar, no he podido validar un select, dejo el código:

if(isset($_POST['submit'])){
	$errors = array();//declaramos un array para almacenar los errores
	 if($_POST['nombre'] ==''){
	$errors[1] ='<span class="error">Ingrese su nombre</span>';
	}else if($_POST['email'] =='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])){
	$errors[2] ='<span class="error">Ingrese su email correcto</span>';
	}else if($_POST['empresa'] ==''){
	$errors[3] ='<span class="error">Ingrese una empresa</span>';
	}else if($_POST['telefono'] ==''){
	$errors[4] ='<span class="error">Ingrese su telefono</span>';
	}else if($_POST['value'] === ''){
		$_POST['value'] = NULL;
	}else if($_POST['comment'] ==''){
	$errors[5] ='<span class="error">Ingrese su mensaje</span>';
	}else {//si todo esta ok envia email

CÓDIGO HTML:

<form action="" method="post" class="contacto">

<div>
  <label>Tu nombre:</label>
  <input name='nombre' type='text' id='nombre' value='<?php echo $_POST['nombre']; ?>' size='40' class='nombre' />
  <?php echo $errors[1]; ?></div>

<div>
<label>Tu email:</label>
<input name='email' type='text' id='email' value='<?php echo $_POST['email']; ?>' size='40' class='email' />
<?php echo $errors[2]; ?></div>

<div>
<label>Tu empresa o colegio:</label>
<input name='empresa' type='text' id='empresa' value="<?php echo $_POST['empresa']; ?>" size='40' class='empresa' />
<?php echo $errors[3]; ?></div>

<div>
<label>Tu teléfono:</label>
<input name='telefono' type="text" id='telefono' value="<?php echo $_POST['telefono']; ?>" size='40' class='telefono' />
<?php echo $errors[4]; ?></div>



<div class="referente">
<p>Tu pregunta es referente a:</p>
<table width="300" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td><p><input type="radio" name="pregunta" value="Logistica_Retiro" id="Logistica_Retiro" />
      logística y  Retiro</p></td>
  </tr>
  <tr>
    <td><p><input type="radio" name="pregunta" value="Marketing" id="Marketing" />
      Campañas de reciclaje y Marketing</p></td>
  </tr>
  <tr>
    <td><p><input type="radio" name="pregunta" value="FAQs" id="FAQs" />
      FAQs</p></td>
  </tr>
  <tr>
    <td><p><input type="radio" name="pregunta" value="news" id="news" />
      Noticias</p></td>
  </tr>
</table>
</div>

<div>
<p>Como nos conocio:</p>
      <select name="conoce" class="conoce" id="conoce" onchange="onSelectChange();" >
        <option  value="" selected>----------</option>
        <option value="Buscador Web">Por un buscador</option>
        <option value="Blog">Por un Blog</option>
        <option value="Referencia">Por referencias</option>
        <option value="Otros">Otro</option>
      </select>
<!--<div class="errors error3"></div>-->
</div>

<div>
<label>Mensaje:</label>
<textarea name='comment' cols="60" rows='6' class="comment" id='comment'><?php echo $_POST['comment']; ?></textarea>
<?php echo $errors[5]; ?></div>

<div><input name='submit' type='submit' class='button' id='submit' value='Envia Mensaje'></div>
<?php echo $result; ?>
</form>
Link to comment
Share on other sites

a ver el metodo que ocupas

if(isset($_POST['submit'])){
    $errors = array();//declaramos un array para almacenar los errores
     if($_POST['nombre'] ==''){
    $errors[1] ='<span class="error">Ingrese su nombre</span>';
    }else if($_POST['email'] =='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])){
    $errors[2] ='<span class="error">Ingrese su email correcto</span>';
    }else if($_POST['empresa'] ==''){
    $errors[3] ='<span class="error">Ingrese una empresa</span>';
    }else if($_POST['telefono'] ==''){
    $errors[4] ='<span class="error">Ingrese su telefono</span>';
    }else if($_POST['value'] === ''){
        $_POST['value'] = NULL;
    }else if($_POST['comment'] ==''){
    $errors[5] ='<span class="error">Ingrese su mensaje</span>';
    }else {//si todo esta ok envia email

esta "bien", el unico problema es que creo que piensas que a medida que va recorriendo esos if's vas a ir almacenando errores y no es asi, ya que si por ejemplo $_post["nombre"] == "" ; solo ejecutara: $errors[1] ='<span class="error">Ingrese su nombre</span>'; y ningun otro, lo que debes hacer es lo siguente:

if(isset($_POST['submit'])){
$errors = array();//declaramos un array para almacenar los errores

if($_POST['nombre'] ==''){
$errors[1] ='<span class="error">Ingrese su nombre</span>';
}

if($_POST['email'] =='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])){
$errors[2] ='<span class="error">Ingrese su email correcto</span>';
}

if($_POST['empresa'] ==''){
$errors[3] ='<span class="error">Ingrese una empresa</span>';
}

if($_POST['telefono'] ==''){
$errors[4] ='<span class="error">Ingrese su telefono</span>';
}
    
if($_POST['value'] === ''){
$_POST['value'] = NULL;
}

if($_POST['comment'] ==''){
$errors[5] ='<span class="error">Ingrese su mensaje</span>';
}

$todo_ok = 1;
    for($i=0;$i<count($errors);$i++){
        if($errors[$i] != ""){
        $todo_ok = 0;
        break;
        }
    }

    if($todo_ok == 0){
        for($i=0;$i<count($errors);$i++){
            if($errors != ""){
            echo $errors[$i]."<br/>";
            }
        }
    }
    else{
    //si todo esta ok envia email
    }
}

espero que te pueda ayudar eso...

 

 

 

 

 

 

 

Edited by cañangasñangas
Link to comment
Share on other sites


if(isset($_POST['submit']))
{
$errors = array();//declaramos un array para almacenar los errores

if($_POST['nombre'] =='')
{
$errors[] ='<span class="error">Ingrese su nombre</span>';
}

if($_POST['email'] =='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email']))
{
$errors[] ='<span class="error">Ingrese su email correcto</span>';
}

if($_POST['empresa'] =='')
{
$errors[] ='<span class="error">Ingrese una empresa</span>';
}

if($_POST['telefono'] =='')
{
$errors[] ='<span class="error">Ingrese su telefono</span>';
}

if($_POST['value'] === '')
{
$_POST['value'] = NULL;
}

if($_POST['comment'] =='')
{
$errors[] ='<span class="error">Ingrese su mensaje</span>';
}

//Si el arreglo errors tiene más de cero elementos, significa que algo falló.
if(count($errors) > 0)
{
//Enviamos todos los errores, concatenamos en un string de los elementos unidos por <br />
echo implode("<br />",$errors);
}
else
{
//si todo esta ok envia email
}
}


 

Link to comment
Share on other sites

if(isset($_POST['submit']))
	{
	$errors = array();//declaramos un array para almacenar los errores

	if($_POST['nombre'] =='')
		{
		$errors[] ='<span class="error">Ingrese su nombre</span>';
		}

	if($_POST['email'] =='' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email']))
		{
		$errors[] ='<span class="error">Ingrese su email correcto</span>';
		}

	if($_POST['empresa'] =='')
		{
		$errors[] ='<span class="error">Ingrese una empresa</span>';
		}

	if($_POST['telefono'] =='')
		{
		$errors[] ='<span class="error">Ingrese su telefono</span>';
		}
		
	if($_POST['value'] === '')
		{
		$_POST['value'] = NULL;
		}

	if($_POST['comment'] =='')
		{
		$errors[] ='<span class="error">Ingrese su mensaje</span>';
		}

	//Si el arreglo errors tiene más de cero elementos, significa que algo falló.
	if(count($errors) > 0)
		{
		//Enviamos todos los errores, concatenamos en un string de los elementos unidos por <br />
		echo implode("<br />",$errors);
		}
	else
		{
		//si todo esta ok envia email
		}
	}


 

me gusto tu metodo, mucho mejor que el mio, esperemos que el usuario con la duda, vea tu respuesta y demos por solucionado el tema.

 

Saludos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...