将javascript变量(从knockout.js)发送到PHP并返回结果

sending javascript variable (from knockout.js) to php and return result

本文关键字:PHP 结果 返回 变量 javascript js knockout      更新时间:2023-09-26

我怎样才能实现以下行为

  1. 从knockout.js表单中获得输入后,将变量发送到要处理的页面。该页面使用PHP

  2. PHP页面接收来自knockout.js表单的输入并运行一些计算,然后返回结果

  3. 变量随后被接收回原始页面,然后通过knockout显示

例如,假设我有以下

//knockout_form.js
self.addItem = function() {
    var itemNum = self.newItem; //variable received from knockout form
    var returnedVariable = ???? **send itemNum to processing.php which will then return it**
    self.itemNumbers.push(new ItemEntry(retunredVariable, "$20.00")); //
}

我知道jQuery/Ajax可以用来发布到processing.php,但是我如何从processing.php返回计算数据到javascript页面?

编辑。数据似乎被发送到processing.php(显示在网络选项卡中),但警告没有显示。

// Operations
self.addItem = function() {
    var itemNum = self.newItem;
    $.getJSON("processing.php?itemNum=" + itemNum),function(data) {
        alert(data); //this does not appear
        self.itemNumbers.push(new ItemEntry(data.result, "$20.00"));
    }
}

这里是php

//$result = $_GET['itemNum'];
$result = "test";  //set it just to be sure it's working
echo json_encode(array("result" => $result));

Knockout本身没有任何特殊的ajax调用方式,通常您会使用jQuery。参见http://knockoutjs.com/documentation/json-data.html。

比如:

self.addItem = function() {
    var itemNum = self.newItem;
    $.getJSON("processing.php?itemNum=" + itemNum,function(data) {
        self.itemNumbers.push(new ItemEntry(data.result, "$20.00"));
    });
}

假设PHP脚本输出的是有效的JSON。比如:

<?php
$result = doCalculations($_GET['itemNum']);
echo json_encode(array("result" => $result));
?>