我有一个在客户端准备的KnockoutJS可观察数组:
ApplicationController
在页面加载时初始化数组:
CourseController
并且,只需单击一个按钮,某些元素就会被推入数组中:
var invoices = function(invoiced_article_number,invoiced_article_name){
this.invoicedArticleNumber = invoiced_article_number;
this.invoicedArticleName = invoiced_article_name;
};
我想通过Ajax post请求将此可观察数组传递给PHP,以便在MySQL中插入数据。我已经尝试使用以下代码将其转换为java脚本对象,但我在PHP中继续使用null。
this.selectedInvoices = ko.observableArray();
Ajax请求:
self.selectedInvoices.push(new invoices(self.selectedArticle().articleNumber,self.selectedArticle().articleName));
PHP代码:
var data = ko.toJS({"data":self.selectedInvoices});
答案 0 :(得分:2)
您需要使用ko.toJSON
将视图模型序列化为可以发送到PHP的内容。尝试:
var data = ko.toJSON({"data":self.selectedInvoices});
这将向PHP发送一个表示视图模型的序列化状态的字符串。然后,您可以使用以下命令在PHP中对其进行反序列化:
$invoice_data = json_decode(trim($_POST['invoiceData']));