PHP не отображает сообщение об успехе после записи данных в JSON, но данные добавляются - PullRequest
0 голосов
/ 10 декабря 2018

Я могу успешно записать новые данные в мой json-файл с помощью кода ниже, но он не отображает сообщение «Файл успешно добавлен», что определено в последнем бите моего PHP.Пожалуйста, скажите мне, где я иду не так?Я отображаю сообщение об ошибке, если поля формы оставлены пустыми, и это здорово, но я действительно хочу, чтобы успешное сообщение отображалось после записи данных, вместо этого страница начинается снова с начала, и я могу добавить новые данные, а затем,Заранее спасибо.

        <?php
         /* Declaring two variables below */

           $message = '';  
            $error = '';  

      if(isset($_POST["submit"])) /*checking below for on submission*/ 

   {  
     /*If any of the fields left empty then below msg will be displayed */
  if(empty($_POST["name"]))  
  {  
       $error = "<label class='text-danger'>Enter Name</label>";  
  }  
  else if(empty($_POST["type"]))  
  {  
       $error = "<label class='text-danger'>Enter Transport Type</label>";  
  }  
  else if(empty($_POST["mileage"]))  
  {  
       $error = "<label class='text-danger'>Enter Mileage on your 
         transport</label>";  
  }  
  else  /*if all the fields are filled then below will execute */
  {  
       if(file_exists('classinfo.json'))  
             {  
            $current_data = file_get_contents('classinfo.json');
            /*first decode json data in a variable called array_data so we 
          can edit and encode back*/  
            $array_data = json_decode($current_data, true);  
            /*putting the contents in a var called extra that has been 
          entered in the form */ 
            $extra = array(  
                 'name'               =>     $_POST['name'],  
                 'type'          =>     $_POST["type"],  
                 'mileage'     =>     $_POST["mileage"]  
            );  
            $array_data[] = $extra;  /* putting the whole array in a new 
               record in json*/
            $final_data = json_encode($array_data);  
            if(file_put_contents('classinfo.json', $final_data)) /*if data 
           send successfully then displaying the below message */  
            {  
                 $message = "<label class='text-success'>File Appended 
             Success fully</p>";  
            }  
       }  
       else  
       {  
            $error = 'JSON File not exits';  
       }  
      }  
     }  
         ?>  
         <!DOCTYPE html>  
          <html>  
  <head>  
       <title>Write Data to JSON file</title>  

  </head>  
  <body>  
       <br />  
       <div class="container" style="width:500px;">  
            <h3 align="">Write Data to JSON file - by Sam</h3><br />                 
            <form method="post">  
                 <?php   
                 if(isset($error))  
                 {  
                      echo $error;  
                 }  
                 ?>                        

                   <br />  
                 <label>Name</label>  
                 <input type="text" name="name" class="form-control" /><br/>  
                 <label>Type of transport</label>  
                 <input type="text" name="type" class="form-control" /><br/>  
                 <label>Mileage</label>  
                 <input type="text" name="mileage" class="form-control"/> 
                   <br/>  
                 <input type="submit" name="submit" value="Append"/><br />     

1 Ответ

0 голосов
/ 10 декабря 2018

Вам нужно echo где-то:

$message = "<label class='text-success'>File Appended 
         Success fully</p>";  

echo $message;

И HTML-код недействителен.Или вы открываете <p> или закрываете </label>

...