2016-07-31 3 views
0

양식을 제출할 때 sendformdata.php 파일로 리디렉션되는 form.php 파일이 있습니다. 그러나 적절한 필드가 채워지지 않은 경우 양식 내에 오류 메시지를 표시하기 위해 sendformdata.php 파일을 가져올 수 없습니다.

단순히 빈 페이지로 표시되는 db_connect.php 파일로 리디렉션됩니다. form.php에 머무르고 html로 오류 메시지를 표시하려면 어떻게해야합니까? 도움에 미리javascript를 사용하여 PHP 양식 처리 - 오류 메시지 표시

<form class="form-horizontal" role="form" action="handleform/sendformdata.php" method="POST"> 
      <legend></legend> 
      <div class="form-group"> 

       <label for="lokotitle" class="col-sm-2">Loko Title</label> 
       <div class="col-sm-4"> 
        <input type="text" class="form-control" name="lokotitle" id="lokotitle" placeholder="Title"> 
        <span id="notitle"></span> 
       </div> 

감사 : 이것은에 오류 메시지를 표시하려고 form.php의 한 부분이다

<?php 

include_once('db_connect.php'); 



$lokotitle = $description = $category = $showyourname = $yourname = $lat = $lng = ""; 


if($_SERVER['REQUEST_METHOD'] == 'POST'){ 


    $lokotitle=$_POST['lokotitle']; 
    $description=$_POST['description']; 
    $category=$_POST['category']; 
    $showyourname=$_POST['showyourname']; 
    $yourname=$_POST['yourname']; 
    $lat=$_POST['lat']; 
    $lng=$_POST['lng']; 




    // Validation will be added here 


    if(empty($lokotitle)) { 
    $error_message = "Please input a Loko title."; 
    ?><script>$('#notitle'.text($error_message));</script><?php 
    exit; 
    } 


    if(!isset($error_message)){ 

    //Inserting record in table using INSERT query 

    $insqDbtb="INSERT INTO `new`.`web_form` 
    (`lokotitle`, `description`, `category`, `showyourname`, `yourname`, `lat`, `lng`) VALUES ('$lokotitle', '$description', '$category', '$showyourname', '$yourname', '$lat', '$lng')"; 
    mysqli_query($link,$insqDbtb) or die(mysqli_error($link)); 

    ?><script>window.location.href = "../index.php"; </script> <?php 
    exit; 
    } 
} 
?> 

: 이것은 내 현재 sendformdata.php 파일입니다!

+0

가 해결되는지 알려주세요 시도 할 수 있습니다. – bhansa

+0

리디렉션하지 않고 양식 페이지에 메시지를 표시하고 싶습니다. – pcris

+0

예 양식을 채울 때까지 리디렉션되지 않습니다. – bhansa

답변

1

html5 required 속성을 모두 사용하여 사용자가 데이터를 입력하도록하는 것이 좋습니다. 그러나 사용자가 프런트 엔드 유효성 검사를 무시할 수 있다는 것을 기억하십시오 (따라서 inspect 요소를 통해). 따라서 백 엔드 유효성 검사도 필요합니다.

를 사용하여 필요한 속성은 같은 :

<input type="text" required /> 

if(empty($lokotitle)) { 
    $error_message = "Please input a Loko title."; 
    echo "<script> 
      document.getElementById('#notitle').value='".$error_message."';". 
      "</script>"; 
    exit; 
    } 

이 당신이 대신 필요한 태그를 사용할 수 있습니다 문제

+0

필수 속성을 사용하면 작동하지만, 어떤 이유로이 PHP 코드로 수동으로 작동하지 않습니다. – pcris