2017-08-04 1 views
0

Guten Tag alle, ich bin neu in PHP und ich brauche wirklich etwas Hilfe. Ich versuche eine Bestätigungsnachricht in einer neuen Seite nach dem Einfügen von Daten zu erstellen. Ich habe versucht Echo und drucke die Ergebnisse, aber nichts funktioniert mir !!!!. Dies ist das einzige Problem das ich nicht lösen konnte !!!Bestätigungsmeldung nach dem Einfügen von Daten in neue Seite

-Code für request.php Seite:

<!DOCTYPE html> 
<html> 

<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 

</head> 

<body dir="rtl"> 
    <div class="container" style="width:400px;"> 
     <div ng-app="myapp" ng-controller="formcontroller"> 
      <form name="userForm" id="contact" ng-submit="insertData()"> 
       <label class="text-success" ng-show="successInsert">{{successInsert}}</label> 
       <div class="form-group"> 
        <label>name<span class="text-danger"></span> 
        </label> 
        <input type="text" name="name" ng-model="insert.name" class="form-control" /><span class="text-danger" ng-show="errorname">{{errorname}}</span> 
       </div> 
       <fieldset class="frmain"> 
        <label>contact</label> 
        <div class="form-group"> 
         <input type="text" name="em" ng-model="insert.em" class="form-control" placeholder="اemail" /> 
         <span class="text-danger" ng-show="errorem">{{errorem}}</span> 
         <input type="text" name="telph" ng-model="insert.telph" class="form-control" placeholder="mobile" /> 
         <span class="text-danger" ng-show="errortelph">{{errortelph}}</span> 
        </div> 
        <div class="form-group"> 
         <label>department<span class="text-danger"></span> 
         </label> 
         <select ng-model="insert.dept" name="dept" class="form-control" style="font-family: times new roman;font-size: 18px;" /> 
         <option value=""></option> 
         <option value="accounting department" </option> 
          <option value="huamn resources"></option> 
          <option value="IT department"></option> 
          </select> 
          <span class="text-danger" ng-show="errordept">{{errordept}}</span> 
        </div> 

        <div class="form-group" style="width: 320px;"> 
         <label>details<span class="text-danger"></span> 
         </label> 
         <textarea name="det" ng-model="insert.det" class="form-control"></textarea> 
         <span class="text-danger" ng-show="errordet">{{errordet}}</span> 
        </div> 
        <div class="form-group"> 
         <button name="submit" type="submit">send</button> 
        </div> 
      </form> 
     </div> 
    </div> 
</body> 

</html> 

<script> 
    var application = angular.module("myapp", []); 
    application.controller("formcontroller", function($scope, $http) { 
     $scope.insert = {}; 
     $scope.insertData = function() { 
      $http({ 
       method: "POST", 
       url: "req_add.php", 
       data: $scope.insert, 
      }).success(function(data) { 
       if (data.error) { 
        $scope.errorname = data.error.name; 
        $scope.errorem = data.error.em; 
        $scope.errortelph = data.error.telph; 
        $scope.errordept = data.error.dept; 
        $scope.errordet = data.error.det; 
        $scope.successInsert = null; 
       } else { 
        $scope.insert = null; 
        $scope.errorname = null; 
        $scope.errorem = null; 
        $scope.errortelph = null; 
        $scope.errordept = null; 
        $scope.errordet = null; 
        $scope.successInsert = data.message; 
       } 
      }); 
     } 
    }); 
</script> 

-Code für req_add.php Seite: (Daten in DB einzufügen)

<?php 
//req_add.php 
$connect = mysqli_connect("localhost", "root", "", "testing"); 
$form_data = json_decode(file_get_contents("php://input")); 
mysqli_query($connect,'set names utf8') or die (mysqli_error($connect)); 
$data = array(); 
$error = array(); 
$date1 = date('Y/m/d H:i:s');// 2017-07-12 10:35:45 
$today = date("Ymd"); 
$rand = strtoupper(substr(uniqid(sha1(time())),0,4)); 
$no1 = $today . $rand; 


if(empty($form_data->name)) 
{ 
$error["name"] = "name is required"; 
} 
if(empty($form_data->em)) 
{ 
$error["em"] = "email is required"; 
} 
if(empty($form_data->telph)) 
{ 
$error["telph"] = "mobile number is required"; 
} 
if(empty($form_data->dept)) 
{ 
$error["dept"] = "department is required"; 
} 
if(empty($form_data->det)) 
{ 
$error["det"] = "details are required"; 
} 
if(!empty($error)) 
{ 
$data["error"] = $error; 
} 
else 
{ 

     $name = mysqli_real_escape_string($connect, $form_data->name); 
     $em = mysqli_real_escape_string($connect, $form_data->em); 
     $telph = mysqli_real_escape_string($connect, $form_data->telph); 
     $dept = mysqli_real_escape_string($connect, $form_data->dept); 
     $det = mysqli_real_escape_string($connect, $form_data->det); 
     $no = mysqli_real_escape_string($connect, $form_data->no1); 
    $reqdate = mysqli_real_escape_string($connect, $form_data->reqdate); 
    $answer = mysqli_real_escape_string($connect, $form_data->answer); 

$query = "INSERT INTO requests(name, em, telph, dept, det, no, reqdate, answer) VALUES ('$name','$em', '$telph', '$dept', '$det', '$no1', '$date1', 'no answer')"; 

if(mysqli_query($connect, $query)) 
{ 
$data["message"] = "thank you for your request, your request nymber is: " .$no1; 
} 
} 
echo json_encode($data); 

?> 
+0

Blick in [Toast/snackbar Nachrichten] (https://www.w3schools.com/howto/howto_js_snackbar.asp) oder wenn Sie scharfkantiges Material verwendet werden soll, hat es eine Richtlinie für [Toast messages] (https://material.angularjs.org/latest/demo/toast) –

+0

Wie ich in Ihrem Code sehen kann, erhalten Sie einige JSON - Daten aus Ihrem PHP - Skript zurück, aber Daten werden in Ihrem Javascript zurückgegeben und sind im $ - Bereich des Aussicht. Wenn Sie Ergebnisdaten auf einer anderen Seite senden möchten, müssen Sie mit Winkelrouting spielen und Ergebnisse als Parameter senden. –

Antwort

0

Eine nützliche Option ist mysqli_insert_id zu verwenden um die letzte ID einzufügen.
Diese Funktion holt die letzte ID in der DB, nicht nur in der eingefügten Tabelle, sondern ist ausreichend.

Eine andere ist in manueller Form, wo die Abfrage einen benutzerdefinierten Wert zurückgibt.
In Ihrem Code:

$query = "INSERT INTO requests(name, em, telph, dept, det, no, reqdate,answer) VALUES ('$name','$em', '$telph', '$dept', '$det', '$no1','$date1', 'no answer')"; 

if(mysqli_query($connect, $query)) 
{ 
$data["message"] = "thank you for your request, your request nymber is: " .$no1; 
} 
} 
echo json_encode($data); 

Fügen Sie diese Änderungen:

$query = "INSERT INTO requests(name, em, telph, dept, det, no, reqdate, answer) VALUES ('$name','$em', '$telph', '$dept', '$det', '$no1', '$date1', 'no answer')"; 

$query .="; select 1 as insert_ok;"; 

if($stmt=mysqli_query($connect, $query)) // Get result 
{ 
    $fetch = mysql_fetch_object($stmt); 

     if ($fetch->insert_ok) { 
      $data["message"] = "thank you for your request, your request nymber is: " .$no1; 

     }else{ 
      $data["message"] = "The register wasn't inserted"; 

} // else 
} //if $stmt 
echo json_encode($data); 

Und in Ihrem Script-Code: Validierung der insert_ok Wert aus dem PHP-Skript zurückgegeben.

+0

user2505515 danke für deine antwort, aber ich will nur anzeigen $ data ["message"] = "danke für ihre anfrage, ihre anfrage nymber ist:". $ No1; auf neuer Seite nicht auf derselben Seite zum Einfügen von Daten !!! –

+0

Versuchen Sie das Ende der Antwort: "Und in Ihrem Skript-Code: validieren Sie den insert_ok-Wert aus dem PHP-Skript zurückgegeben." Auf der Zielseite. –

Verwandte Themen