所以我有点棘手或者说奇怪的情况。
我有php和mysql数据库,前端我正在使用angular.js
所以我正在创建服务,通过post请求发送数据到php。
当我通过名称html属性发送输入值时,一切正常。
但是当我尝试从for循环中发送硬编码文本变量时会出现问题。
我知道这是非常难以编码的方式,但我不知道如何以不同的方式做到这一点。
所以这是我的php
<?php
$conn = mysqli_connect('localhost','nemkeang','nemkic23','interventure');
if(!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$text = $_POST['first_name'];
$text2 = $_POST['last_name'];
$text3 = $_POST['date'];
$text4 = $_POST['author'];
$text5 = $_POST['note'];
$text6 = $_POST['skill'];
$target = "/assets";
$target = $target . basename( $_FILES['cv_file_name']['name']);
//This gets all the other information from the form
$file_name= $_FILES['cv_file_name']['name'];
$file_name2= $_FILES['cv_file_name']['name'];
//Writes the file to the server
if(move_uploaded_file($_FILES['cv_file_name']['tmp_name'], "./".$file_name)) {
//Tells you if its all ok
echo "The file ". basename( $_FILES['cv_file_name']['name']). " has been uploaded, and your information has been added to the directory";
// Connects to your Database
}
$sql = "INSERT INTO user (first_name, last_name, skill, date, cv_file_name, cv_url, author, note)
VALUES ('$text','$text2','$text6','$text3','$file_name','$file_name2','$text4','$text5')";
if (!mysqli_query($conn,$sql)) {
die('Error: ' . mysqli_error($conn));
}
else {
echo "success";
}
mysqli_close($con);
?>
php工作正常,它正在发送数据,但在$ text6 = $ _POST ['技能'];问题到了。
所以这是我的角色服务第一次
app.service('testpost',['$http',function($http){
this.saveRecipe = function(postdata){
let payload = new FormData();
payload.append("first_name", postdata.first_name);
payload.append('last_name', postdata.last_name);
payload.append('date', postdata.date);
payload.append('cv_file_name', postdata.cv_file_name);
payload.append('author', postdata.author);
payload.append('note', postdata.note);
payload.append('skill', postdata.skill);
return $http.post('login/post.php', payload, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined},
})
}
}]);
它也正常工作,当我将其记录到控制台时,它显示正确的值。只是不要发送payload.append('skill',postdata.skill);对PHP的价值。
这是我的控制器
app.controller('newUser',['$scope','$filter','testpost', function($scope,$filter,testpost) {
$scope.postdata = {}
$scope.arr = [];
let bar = document.getElementsByClassName('md-chip-content');
this.saveRecipe = function(postdata) {
for(var i = 0; i < bar.length; i++) {
$scope.arr.push(bar[i].innerText);
}
let skills = $scope.arr;
postdata.date = $filter('date')(postdata.date, "MM/dd/yyyy").split('/').join('-');
postdata.skill = skills[0];
postdata.skill2 = skills[1];
postdata.skill3 = skills[2];
postdata.skill4 = skills[3];
testpost.saveRecipe(postdata).then((data)=>{
console.log(data);
})
error:(err) =>{ return false};
}
}]);
为了清楚起见我只想将postadata.skill的值通过php发送到mysql。我认为问题出在php中,因为值不是来自输入类型。
我希望我已经很好地解释了一切。提前谢谢。