繁体   English   中英

angularjs-如何将数据同时保存到两个表中

[英]angularjs - How to save data into two tables simultaneously

我有一个表格,其中包含员工的详细信息,包括基本信息和教育信息。 如何在一个表中保存基本详细信息,在另一个表中保存教育详细信息?

形式如下。

 <form name="empdetailsform">
  <h3>BASIC DETAILS</h3>

   <label>First Name</label>
   <input type="text" name="firstname" data-ng-model="empData.firstname"/></br>

   <label>Last Name</label>
   <input type="text" name="lastname" data-ng-model="empData.lastname" /></br>

   <label>Email</label>
   <input type="email" name="email" data-ng-model="empData.email"/></br>

    <label>Mobile</label>
    <input type="text" name="mobile" data-ng-model="empData.mobile"/></br>

     <label>City</label>
     <select name="city" data-ng-model="empData.city" >
       <option value="Hyderabad">Hyderabad</option>
       <option value="Bangalore">Bangalore</option>
       <option value="Chennai">Chennai</option>
      </select><br>

    <h3>Educational Details</h3>
      <button ng-click="addfield()">Add Education</button>
      <div ng-repeat="item in items">
      <input type="text" name="empData.qualification[]" placeholder="Qualification">
      <input type="text" name="empData.year[]" placeholder="Year of Passing">
      <input type="text" name="empData.percentage[]" placeholder="Percentage">
      </div> 
     <input type="submit" name="submit" ng-click="saveEmp()" />
      </form>

我想将基本详细信息保存在employee表中,并将教育详细信息保存在educational_details表中。 为此,我使用angular js和php完成了以下编码

这是我的ajax.php代码,其中保存了基本详细信息

  if( isset($_POST['type']) && !empty($_POST['type'] ) ){
   $type = $_POST['type'];

   switch ($type) {
       case "save_user":
        save_user($mysqli);
        break;
    default:
        invalidRequest();
     }
    }else{
      invalidRequest();
     }

     function save_user($mysqli){
         $firstname=$_POST['user']['firstname'];
         $lastname=$_POST['user']['lastname'];
         $email=$_POST['user']['email'];
         $mobile=$_POST['user']['mobile'];
         $city=$_POST['user']['city'];
        $query = "INSERT INTO employees ( firstname, lastname, email, mobile, city) VALUES ('$firstname', '$lastname', '$email', '$mobile', '$city')";
    $mysqli->query( $query );
    $mysqli->close();
  }

我已经成功保存了基本详细信息。 但是我不知道如何将教育详细信息保存在employee表中包含的另一个表中。

如果用户输入3个教育详细信息,则3个数据必须保存在3个记录中,即数据库中的3行。 如何使用angularjs和php执行此操作?

这是jsFiddle链接http://jsfiddle.net/b0jtqzpj/

请帮我

如果angular已经发布了所有插入物所需的所有详细信息,则可以添加另一个函数来设置不同的插入物,并在收到该插入物类型时调用每个插入物。 除非angular没有发送所有必需的数据,否则所有这些都应在服务器上完成,在这种情况下,后期处理请求将需要进行调整。

在服务器上,代码将类似于以下内容:

if( isset($_POST['type']) && !empty($_POST['type'] ) ){
   $type = $_POST['type'];

   switch ($type) {
       case "save_user":
        save_user($mysqli);
        save_details($mysqli);
        break;
    default:
        invalidRequest();
     }
    }else{
      invalidRequest();
     }

function save_user($mysqli){

    $insert_sql = $mysqli->prepare("INSERT INTO employees ( firstname, lastname, email, mobile, city) VALUES (?,?,?,?,?)";
    $query->bind_param($firstname, $lastname, $email, $mobile, $city);

    $firstname=$_POST['user']['firstname'];
    $lastname=$_POST['user']['lastname'];
    $email=$_POST['user']['email'];
    $mobile=$_POST['user']['mobile'];
    $city=$_POST['user']['city'];

    $mysqli->query( $insert_sql );
    $mysqli->close();
}

function save_details($mysqli){

    $select_sql = $mysqli->prepare("SELECT id FROM employees WHERE email = ?");
    $select_sql->bind_param($email);

    $email=$_POST['user']['email'];

    $insert_sql = $mysqli->prepare("INSERT INTO educational_details ( employee_id, qualification, year, percentage) VALUES (?,?,?,?)";
    $query->bind_param($employee_id, $qualification, $year, $percentage);

    $employee_id = $mysqli->query( $select_sql );
    $qualification=$_POST['user']['qualification'];
    $year=$_POST['user']['year'];
    $percentage=$_POST['user']['percentage'];

    $mysqli->query( $query );
    $mysqli->close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM