распечатать сообщение о вставке данных в базу данных в oop - PullRequest
0 голосов
/ 09 декабря 2011

Я вставляю данные формы в базу данных mysql, используя oop php, в готовый проект. Все работы корректны, но после отправки сообщения об успешном и неудачном сообщении не отображается. Пример кода моей формы:

performance.php ->

   <h1>Employee Review Form</h1>
 <form name="product"  action="" method="post" id="customForm">
     <table>
          <tr>
         <td>Review Employee Id</td>
         <td><input type="text" name="rcode" id="rcode"  class="genInputBox" /></td>
     </tr>
         <tr>
             <td>Domain Knowledge(Subject Matter)</td>
             <td><select name="dk" id="dk">
                     <option value="">Plz Select Ratting </option>
                     <option value="5">5</option>
                     <option value="4">4</option>
                     <option value="3">3</option>
                     <option value="2">2</option>
                     <option value="1">1</option>
                 </select></td>
         </tr>and more...............
          <input type="submit" value="register" id="submit" name="form_submit"/>
                    </td></tr>
                        </table>
                    </form>

и отправка формы

     <?php

      if(isset($_POST) && isset ($_POST["form_submit"])){
     $valArr=array("review_emp_id"=>$_POST['rcode'],"subject_matter"=>$_POST['dk']);
    $per_obj = new Performance();
    $per_obj->addPreformance($valArr, "employee_performance");


    }
     ?>

и моя страница успеваемости:

             <?php 
   require_once("admin/includes/class_common_lib.php");
    require_once("class.userinfo.inc.php");

    class Performance extends DataAccess{

var $db_obj = null;
public function  __construct() {     //for database connectivity
    $this->db_obj = new DataAccess();
}

public function  addPreformance($key_values = array(), $table = null) {
    $this->db_obj->table_name = $table;
      $this->db_obj->addRecord($key_values);


   }
  }

   ?>

и в классе common lib добавить код функции записи:

                    // Function for Add Record
    function addRecord($key_values)
    {

        $cols="";
        $vals="";
        foreach($key_values as $key=>$value)
        {
            if ($key!="submit" and $key!="PHPSESSID" and $key!="image_name" and $key!="submit_button" and $key!="ext" and $key!="ext2" and $key!="img_name" and $key!="mode" and $value!="" and $key!="gpl" and $key!="ip1" and $key!="ip2" and $key!="ip3" and $key!="ip4"){
                $cols .= "`".$key."`,";
                is_string($value)? $vals .= "'".addslashes($value)."'," : $vals .= "'".$value."',";

            }
        }

        $cols = substr($cols, 0, -1);
        $vals = substr($vals, 0, -1);

        $insert_qry="insert into ". $this->table_name ."(". $cols .") values(". $vals .")";

        $r=mysql_query($insert_qry);
        $this->msg = (!$r) ? f_add_msg : s_add_msg;
        return $r;
    }

Это очень большой проект, и я делаю весь процесс, который делал предыдущий человек.

теперь я хочу показать, что msz данных отправляется в базу данных или нет (успешно или неудачно) после отправки формы.

и я нашел эти строки в файле конфигурации

      define ("s_add_msg", "Record successfully added.");

     define ("f_add_msg", "Record not added. Please try again.&error=1");

Я знаю его длинный код, но мне нужно показать, что происходит. все функции работают правильно, но как показать сообщение об успехе или неудаче на странице performance.php? помогите

1 Ответ

1 голос
/ 09 декабря 2011

Обычно в программировании используется шаблон Post / Redirect / Get в подобных ситуациях.Если вы не видите всю свою кодовую базу, можно быстро исправить это, изменив форму, отправленную следующим образом:

<?php

  if(isset($_POST) && isset ($_POST["form_submit"])){
     $valArr=array("review_emp_id"=>$_POST['rcode'],"subject_matter"=>$_POST['dk']);
     $per_obj = new Performance();
     $per_obj->addPreformance($valArr, "employee_performance");

     $redirectLink = "someOtherUrl.php?m=" . urlencode( $per_obj->db_obj->msg );
     header( 'Location: ' . $redirectLink );
     die();
}
 ?>

Это перенаправит на новый URL-адрес, который вы указали, где вы сможете получить сообщение о состоянии, используя$ _GET ['m'].

В конце концов, вы захотите сделать это в системе более понятным способом, но если вы просто пытаетесь исправить устаревший код, который по крайней мере поможет вам начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...