【问题标题】:Posting KnockoutJS observable array to PHP through Ajax通过 Ajax 将 KnockoutJS 可观察数组发布到 PHP
【发布时间】:2015-07-19 21:49:35
【问题描述】:

我有一个在客户端准备好的 KnockoutJS 可观察数组:

var invoices = function(invoiced_article_number,invoiced_article_name){
        this.invoicedArticleNumber = invoiced_article_number;
        this.invoicedArticleName = invoiced_article_name;
    };

数组在页面加载时初始化:

this.selectedInvoices = ko.observableArray();

而且,单击按钮时,某些元素会被推送到数组中:

self.selectedInvoices.push(new invoices(self.selectedArticle().articleNumber,self.selectedArticle().articleName));

我想通过 Ajax 发布请求将此可观察数组传递给 PHP,以在 MySQL 中插入数据。我尝试使用以下代码将其转换为 java 脚本对象,但我在 PHP 中一直为空。

var data = ko.toJS({"data":self.selectedInvoices});

Ajax 请求:

$.ajax({
                url: "URL.php",
                type: "post",
                data: {invoiceData: data},
                cache: false,
                success: function(returnedData) {}
            });

PHP 代码:

$invoice_data = trim($_POST['invoiceData']);

【问题讨论】:

    标签: php knockout.js


    【解决方案1】:

    您需要使用ko.toJSON 将您的视图模型序列化为可以发送到PHP 的东西。试试:

    var data = ko.toJSON({"data":self.selectedInvoices});
    

    这会将代表视图模型的序列化状态的字符串发送到 PHP。然后你可以在 PHP 中反序列化它:

    $invoice_data = json_decode(trim($_POST['invoiceData']));
    

    【讨论】:

      猜你喜欢
      • 2013-05-23
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2014-07-06
      • 2017-11-25
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多