Sto lavorando con dipendenza angolare e materiale angolare (design del materiale).Valori del campo di input visualizzati in console ma non nel campo di input + non in grado di salvare nel db
Ho questa griglia principale che quando clicco su di essa verrà creata una piastrella e quando clicco su quella tessera appare un pop up. In questo pop-up c'è un modulo con 2 campi di input che dovrebbero mostrare le coordinate x e y della tessera. I valori non vengono visualizzati nel campo di input, ma lo fanno nella mia console.
Quello che sto cercando di ottenere è di essere in grado di salvare queste coordinate sul mio db. Per qualche ragione quando premo save non viene salvato nel mio db.
Ecco il mio codice per la casella pop-up:
<form ng-controller="AppCtrl">
<div layout="row">
<input type="text" id="coord_x" name="coordinate_x" value="" ng-model="task_coordinate_x" >
<input type="text" id="coord_y" name="coordinate_y" value="" ng-model="task_coordinate_y">
</div>
</form>
Il codice per la mia app.js
:
app.controller('AppCtrl', function($scope, $mdDialog, $http) {
$scope.save_task = function() {
$http.post('db.php?action=add_task',
{
'task_coordinate_x' : $scope.task_coordinate_x,
'task_coordinate_y' : $scope.task_coordinate_y
}
)
.success(function (data, status, headers, config) {
//$scope.get_task(); //this will fetch latest record from DB
console.log("The task has been added successfully to the DB");
console.log(data);
})
.error(function(data, status, headers, config) {
console.log("Failed to add the task to DB");
});
function snapToGrid(x, y, $element, animate) {
//Set gridsize and offsets
var gridSizeX = 60;
var offsetX = 0;
var gridSizeY = 69;
var offsetY = 10;
//calculate the x and y positions on the grid
var newX = x - (x % gridSizeX);
var newY = y - (y % gridSizeY);
// pass the x and x to the popup hidden input field to be able to save to db
localStorage.setItem('coordinateX', newX);
localStorage.setItem('coordinateY', newY);
console.log("NewX: " + newX);
console.log("NewY: " + newY);
//apply the new positions
if(animate){
$element.animate({
top: offsetY + newY,
left: offsetX + newX,
}, 200)
}else{
$element.css({
top: offsetY + newY,
left: offsetX + newX,
})
}
}
};
Questo è il mio codice PHP:
<?php
include('config.php');
switch($_GET['action']) {
case 'add_task' :
add_task();
break;
}
/** Function to add a task to db **/
function add_task() {
$data = json_decode(file_get_contents("php://input"));
$task_coordinate_x = $data->task_coordinate_x;
$task_coordinate_y = $data->task_coordinate_y;
print_r($data);
$qry = 'INSERT INTO tblTask(task_coordinate_x, task_coordinate_y)
VALUES ("'
. $task_coordinate_x . '","'
. $task_coordinate_y . '")';
echo ($qry);
$qry_res = mysql_query($qry);
if ($qry_res) {
$arr = array('msg' => "Task added 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);
}
}
?>
Suggerirei memorizzare le variabili di coordinate in un oggetto 'coordinates.x' e' coordinates.y' a causa dell'ereditarietà e dello stile appropriato. Li inizializzerei anche lì. Hai investigato dove fallisce? Il tuo server ottiene le variabili o non sono disponibili nel metodo 'save_task'? – enpenax
@enpenax, questo è ciò che accade -> http://recordit.co/HcnJOljPxC – GY22
Puoi rimuovere il comando print_r() e provare? Non sono completamente sicuro di ciò, ma PHP non esegue oltre print_r() se è chiamato – srthu