#php #mysql #angularjs #phpmyadmin
#php #mysql #angularjs #phpmyadmin
Вопрос:
Я новичок в AngularJS, но, похоже, я не могу вставить какие-либо данные в свою базу данных. Я выполнил несколько инструкций, но, похоже, это не работает. Когда я нажимаю кнопку отправки, ничего не происходит, и в мою базу данных не вставлены данные. Пожалуйста, помогите.
Большое спасибо, ребята.
view2.html
<div ng-app="register" >
<form name="form1" ng-controller="registerInsert" align="center">
<ul>
<li class="err" ng-repeat="error in errors"> {{ error}} </li>
</ul>
<ul>
<li class="info" ng-repeat="msg in msgs"> {{ msg}} </li>
</ul>
<div class="form-group col-md-6 col-xs-12 col-md-offset-3" >
<label for="InputName" ><h1>Please fill your informations</h1></label>
<input type="text" class="form-control" ng-model="fName" placeholder="Firstname" >
</div>
<div class="form-group col-md-6 col-xs-12 col-md-offset-3">
<input type="text" class="form-control" ng-model="lName" placeholder="Lastname" >
</div>
<div class="form-group col-md-6 col-xs-12 col-md-offset-3">
<input type="text" class="form-control" ng-model="eMail" placeholder="E-Mail" >
</div>
<div class="form-group col-md-6 col-xs-12 col-md-offset-3">
<input type="text" class="form-control" ng-model="userName" placeholder="Username" >
</div><div class="form-group col-md-6 col-xs-12 col-md-offset-3">
<input type="password" class="form-control" ng-model="passWord" placeholder="Password" >
</div>
<div class="form-group col-md-6 col-xs-12 col-md-offset-3">
<input type="text" class="form-control" ng-model="tel" placeholder="Telephone Number" >
</div>
<div class="form-group col-md-6 col-xs-12 col-md-offset-3">
<button ng-click='SignUp();' class="btn btn-default" >Submit</button>
</div>
</form>
</div>
<script type="text/javascript">
function registerInsert($scope, $http) {
$scope.errors = [];
$scope.msgs = [];
$scope.SignUp = function() {
$scope.errors.splice(0, $scope.errors.length); // remove all error messages
$scope.msgs.splice(0, $scope.msgs.length);
$http.post('save_register.php', {'fName':$scope.fName,'lName':$scope.lName,'eMail':$scope.eMail,
'userName':$scope.userName,'passWord':$scope.passWord,'tel':$scope.tel}
).success(function(data, status, headers, config) {
if (data.msg != '')
{
$scope.msgs.push(data.msg);
}
else
{
$scope.errors.push(data.error);
}
}).error(function(data, status) { // called asynchronously if an error occurs
// or server returns response with an error status.
$scope.errors.push(status);
});
}
}
</script>
save_register.php
<?php
$data = json_decode(file_get_contents("php://input"));
$userName = mysqli_real_escape_string($con,$data->userName);
$passWord = mysqli_real_escape_string($con,$data->passWord);
$fName = mysqli_real_escape_string($con,$data->fName);
$lName = mysqli_real_escape_string($con,$data->lName);
$eMail = mysqli_real_escape_string($con,$data->eMail);
$tel = mysqli_real_escape_string($con,$data->tel);
$accountStat = mysqli_real_escape_string($con,$data->accountStat);
$verifyCode = mysqli_real_escape_string($con,$data->verifyCode );
$verifyStat = mysqli_real_escape_string($con,$data->verifyStat);
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('MiddleWork', $con);
$qry_em = 'select count(*) as cnt from UserTest where Username ="' . $userName . '"';
$qry_res = mysql_query($qry_em);
$res = mysql_fetch_assoc($qry_res);
if ($res['cnt'] == 0) {
$qry = 'INSERT INTO UserTest (Username,Password,Firstname,Lastname,Email,Tel)
values ("' . $userName . '","' . $passWord . '","' . $fName . '""' . $lName . '","' . $eMail . '","' . $tel . '")';
$qry_res = mysql_query($qry);
if ($qry_res) {
$arr = array('msg' => "User Created Successfully!!!", 'error' => '');
$jsn = json_encode($arr);
print_r($jsn);
} else {
$arr = array('msg' => "", 'error' => 'Error In inserting record');
$jsn = json_encode($arr);
print_r($jsn);
}
} else {
$arr = array('msg' => "", 'error' => 'User Already exists with same email');
$jsn = json_encode($arr);
print_r($jsn);
}
Ответ №1:
Включите отчет об ошибках или посмотрите журнал сервера. Очевидно, что в INSERT
операторе между fName
и отсутствует запятая lName
.
Комментарии:
1. о, спасибо, я не видел эту ошибку с запятой, я вставил ее, но все равно ничего не произошло. В моем терминале кажется, что веб-сайт не может вызвать php-файл. Я сделал что-то не так?
2. Взгляните на журнал или добавьте это в свой PHP:
ini_set('display_errors', 'On'); error_reporting(-1);
3. Я получил сообщение angular.js: 13920 Ошибка: [ng: areq] Аргумент ‘registerInsert’ не является функцией, не определен errors.angularjs.org/1.5.8/ng /… на локальном хостинге:8000/bower_components/angular/angular.js:68:12 в assertArg
4. Тогда это проблема JS. Вероятно, вы вызываете
registerInsert()
куда-то, что не определено (пока).5. не определено в <script> tag ? сэр? я так сожалею о глупом вопросе, но он темный во всех отношениях: (