我如何才能完成以下行为。
从knockout.js表单获取输入后,将变量发送到要处理的页面。该页面使用PHP
PHP页面接收来自knockout.js表单的输入并运行一些计算,然后返回结果
然后将该变量收回原始页面,然后通过淘汰赛显示
例如,说我有以下
//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,但是如何将处理后的计算数据返回到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));
答案 0 :(得分:2)
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));
?>
这是未经测试的,但你明白了。