Ich habe ein Projekt, das mit CodeIgniter gemacht wird, wir wollen PHP für den Server und AngularJS für den Client verwenden. Ich möchte auch den Namen und die ID eines Benutzers in unserer Datenbank einzufügen Dies ist der AngularJS Code:Wie kann ich mit einem CodeIgniter-Controller Daten aus einem AngularJS-Formular in eine Datenbank einfügen?
<!doctype html>
<html>
<head>
<title>Angular Forms</title>
<!-- LOAD BOOTSTRAP CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<!-- LOAD JQUERY -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<!-- LOAD ANGULAR -->
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
<script>
// define angular module/app
var formApp = angular.module('formApp', []);
// create angular controller and pass in $scope and $http
function formController($scope, $http) {
// create a blank object to hold our form information
// $scope will allow this to pass between controller and view
$scope.formData = {};
// process the form
$scope.processForm = function() {
$http({
method : 'POST',
url : 'http://localhost/alpha2/index.php/user/insert',
data : $.param($scope.formData), // pass in data as strings
headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload)
})
.success(function(data) {
console.log(data);
if (!data.success) {
// if not successful, bind errors to error variables
$scope.erroridAlumno = data.errors.idAlumno;
$scope.errorNombre = data.errors.nombre;
} else {
// if successful, bind success message to message
$scope.message = data.message;
$scope.erroridAlumno = '';
$scope.errorNombre = '';
}
});
};
}
</script>
<style>
.ng-valid.ng-dirty{
border-color: green;
}
.ng-invalid.ng-dirty{
border-color: red;
}
</style>
</head>
<!-- apply the module and controller to our body so angular is applied to that -->
<body ng-app="formApp" ng-controller="formController">
<div class="container">
<div class="col-md-6 col-md-offset-3">
<!-- PAGE TITLE -->
<div class="page-header">
<h1><span class="glyphicon glyphicon-tower"></span> Insertar Nuevo Alumno</h1>
</div>
<!-- SHOW ERROR/SUCCESS MESSAGES -->
<div id="messages" class="well" ng-show="message">{{ message }}</div>
<!-- FORM -->
<form ng-submit="processForm()">
<!-- ID -->
<div id="idAlumno-group" class="form-group" ng-class="{ 'has-error' : erroridAlumno }">
<label>ID</label>
<input type="text" name="idAlumno" class="form-control" placeholder="Bruce Wayne" ng-model="formData.idAlumno">
<span class="help-block" ng-show="erroridAlummno">{{ erroridAlumno }}</span>
</div>
<!-- NAME -->
<div id="nombre-group" class="form-group" ng-class="{ 'has-error' : errorNombre }">
<label>Nombre</label>
<input type="text" name="nombre" class="form-control" placeholder="Caped Crusader" ng-model="formData.nombre">
<span class="help-block" ng-show="errorNombre">{{ errorNombre }}</span>
</div>
<!-- SUBMIT BUTTON -->
<button type="submit" class="btn btn-success btn-lg btn-block">
<span class="glyphicon glyphicon-flash"></span> Submit!
</button>
</form>
<!-- SHOW DATA FROM INPUTS AS THEY ARE BEING TYPED -->
<pre>
{{ formData }}
</pre>
</div>
</div>
</body>
</html>
Und in meinem PHP-Projekt, ich habe einen Controller (und ein Modell) namens "Benutzer". Dieser Controller verfügt über drei Methoden: Index, Benutzer und Einfügen. Insert ist die Methode, die ich versuche, damit es funktioniert, die ich verwende, um neue Daten in die Datenbank einzufügen.
Ich denke, dass es ein Problem mit routes.php (im Ordner config) sein kann, weiß ich nicht, was ich dort setzen soll.
Was wäre der richtige Code bei Benutzer/einfügen, um die Daten in die Datenbank einzufügen? Was wäre der korrekte Code für routes.php, damit er funktioniert?
Das Modell der User-Entität heißt "user_model". Diese ist der Code des Modells:
<?php
class User_model extends CI_Model {
public function __construct()
{
$this->load->database();
}
\t \t public function get_users($id = FALSE)
\t \t {
\t \t if ($id === FALSE)
\t \t {
\t \t $query = $this->db->get('alumno');
\t \t return $query->result_array();
\t \t }
\t \t $query = $this->db->get_where('alumno', array('idAlumno' => $id));
\t \t return $query->row_array();
\t \t }
\t \t public function insert_user($data){
\t \t \t
$query = $this->db->insert('alumno',$data);
return $query;
}
\t \t
}
?>
("alumno" ist der Name der Tabelle in meiner Datenbank)
Vielen Dank für Ihre Hilfe.
Zunächst müssen Sie sicherstellen müssen, zu unterstützen, dass Ihre Server-Seite Controller-POST-Anfrage akzeptieren. Schreiben Sie entsprechend Code für routes.php und Controller-Seite. Erhalten Sie Daten von eckigen mit dem Anfrage-Objekt oder $ _POST geschrieben ... ich denke, das ist alles, was Sie brauchen, um mehr zu schreiben – webDev
Die Methode, um Daten bei codeigniter bekommen ist "$ this-> input-> post ('nameOfTheVariable')". Aber ich weiß nicht, wie man den richtigen Code in routes.php und dem Controller schreibt. –
Ist das, was Sie suchen http://stackoverflow.com/questions/29159612/codeignit-how-to-set-a-controller-funktion-zu-be-a-post-route oder direkt REST-Endpunkte mit Codeigniter https : // GitHub.com/chriskacerguis/codeigniter-restserver – webDev