Inválido-feedback no apear (Server-side) (Bootstrap 4)

Intento hacer el retroceso inválido para mostrar cuando la entrada está en blanco pero parece que no puedo hacerlo mostrar. ¿Alguien puede ayudar?

======================================== CSS =======================================
    
    

    =================================== Core JS Files ==================================
    
    
    




    ===================================== Content ================================
    

Fill the form below to add new record on database

" method="post" class="needs-validation">
= $name_err;?

Aquí está MySQLi

// Define variables and initialize with empty values
$name = $block = $level = $room = $status = "";
$name_err = $block_err = $level_err = $room_err = $status_err = "";

// Form Submit (What happen when button SUBMIT click)
if ( $_SERVER[ "REQUEST_METHOD" ] == "POST" ) {

    // Data Validation ================================ Hostel Name ===========================================
    $input_name = trim( $_POST[ "hostelName" ] );
    
    if ( empty( $input_name ) ) 
    {
        $name_err = "Please enter a hostel name.";
    } 
    
    elseif ( !filter_var( $input_name, FILTER_VALIDATE_REGEXP, array( "options" => array( "regexp" => "/^[a-zA-Z\s]+$/" ) ) ) ) 
    {
        $name_err = "Please enter a valid name.";
    }
    
    else 
    {
        $name = $input_name;
    }

Nota: También intento utilizar d-block, validación de necesidades, novalidato (por error del servidor 403 "prohibido acceso") todavía no funciona

Pregunta hecha hace 3 años, 4 meses, 29 días - Por codealchemyf00f


3 Respuestas:

  • TQ mucho por la ayuda El., olvidé que el comportamiento predeterminado de la forma es someterse a uno mismo. Después de quitar la acción y seguir/leer el doc en bootstrap. Finalmente pude mostrar texto inválido.

            
    = $name_err;?

    Respondida el Dec 17, 2020 a las 15:01 - por syntaxsniper

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando está en el código HTML y en la lógica de validación del formulario en PHP. Aquí te dejo algunas correcciones y sugerencias para solucionar el problema:

    • En el HTML, puedes corregir la etiqueta
      que tiene un carácter no reconocido. Debe verse así:
    html
    " method="post" class="needs-validation">
    
    • En el HTML, dentro de la etiqueta , estás mostrando el mensaje de error en una forma incorrecta. Deberías corregirlo así:
    html
    
    
    • En la validación del formulario en PHP, si encontramos un error al validar el nombre del albergue, debemos setear el nombre a null para que no se muestre en el campo de entrada. Puedes corregirlo así:
    php
    elseif ( !filter_var( $input_name, FILTER_VALIDATE_REGEXP, array( "options" => array( "regexp" => "/^[a-zA-Z\s]+$/" ) ) ) ) 
    {
        $name_err = "Please enter a valid name.";
        $name = null; // Establecer $name a null en caso de error
    }
    

    Con estas correcciones, deberías poder mostrar el mensaje de retroceso inválido cuando la entrada está en blanco o no es válida. Además, asegúrate de que Bootstrap 4 esté cargado correctamente en tu proyecto para que las clases is-invalid y invalid-feedback funcionen como se espera.

    Respondida el Dec 18, 2020 a las 15:05 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El problema es que el div con la clase invalid-feedback está vacío. Para mostrar el mensaje de error, debes asignarle el valor del mensaje de error.

    Aquí tienes el código corregido:

    html
    

    Asegúrate también de que has incluido el archivo bootstrap.min.js en tu página.

    Respondida el Dec 18, 2020 a las 15:12 - por Gemini

    Votos positivos: 0 | Votos negativos: 0