Это мой JavaScript в index.php:
MyModel = Backbone.Model.extend({
defaults: {
myID: "",
myName: ""},
urlRoot: 'testAjaxAdd',
sync: function(method, model, options) {
options = options || {};
options['data'] = {};
options.data["myID"] = model.get("myID");
options.data["myName"] = model.get("myName");
options.data = JSON.stringify(options.data);
return Backbone.sync.apply(this, arguments);
}
});
MyView = Backbone.View.extend({
el: '.page',
render: function(){
var template = _.template($('#add-owner-template').html(), {});
this.$el.html(template);
},
events: {
'submit .create-owner-form': 'saveOwner'
},
saveOwner: function(events) {
var myName= $('input#myName').val();
var owner = new MyModel({
'myID': "111",
'myName': myName
});
owner.save({},{
success: function(model, response, options) {
console.log('success');
console.log(response); // show $_POST from actionSaveOwner in Controller
console.log(model.toJSON()); // show model
console.log(model.get('myID')); // show owner dbcID
console.log(model.get('myName')); // show owner userID
console.log(JSON.stringify(options)); // show options
console.log(options.data["myID"]); // this is shown undefined in console
console.log(options.data["myName"]); // this is shown undefined in console
},
error: function(model, response, options) {
console.log('error');
console.log(response);
console.log(model.toJSON());
}
});}
});
Я поместил код ниже в самой первой строке в моих кодах JavaScript:
Backbone.emulateHTTP = true;
Это моя HTML-часть формы, а также шаблон JavaScript:
<script type="text/template" id="add-owner-template">
<form class='create-owner-form'>
<label>Name</label>
<input type="text" name="myName" id="myName"/>
<button type="submit" class="btn createcontbutton">Create</button>
</form>
</script>
Это мое очень простое действие в Контроллере, чтобы проверить, работает ли моя магистраль или нет:
public function actionTestAjaxAdd()
{
header('Content-type: application/json');
echo CJSON::encode($_POST);
}
Тем не менее, это то, что я вижу из консоли в POST
вкладка:
Parameters application/x-www-form-urlencoded Do not sort
{"myID":"111","myName":"i...
Но $ _POST в действии контроллера — ничто, когда я отображаю его обратно в консоли из ответа.
Я наконец решил это сам, используя file_get_contents("php://input")
,
Других решений пока нет …