我可以从KnockOut中正确显示我的数据;但是,我无法找到一个很好的方法来获得PHP并让PHP为mySQL准备数据:
从我的表单页面我可以触发数据在提交时显示,没问题:
var json = ko.utils.stringifyJson( this.Stuff );
alert("This is what I wanna save: \n" + json );
但是,我想将它发送到php文件将其写入mySql - 我接下来该怎么办?
ko.utils.postJson( $("form")[0], this.Stuff );
// or
$.get( "_php/savetodb.php" , json );
...当PHP页面收到JSON格式的数据时,又是什么?
我在网上看到的每个解决方案基本上都说“你可以做到”。但不是我要做的是什么。
我正在尝试的路径(从我读过的,这是首选路径)是: 表格数据 - >敲门 - > ENCODE JSON - > PHP - > DECODE JSON - > MYSQL
答案 0 :(得分:4)
那里有一些有用的答案 - 大多数都归结为“嘿,你为什么不阅读文档?”
对于我尝试通过JSON向PHP发送数据的第一部分,我发现此链接很有用: [factsandpeople.com]
所以适合我的代码(适用于测试)是:HTML
<form name="info" action="" method="get">
First : <input type="text" name="first" value="Sandra" size="23"><br>
Last : <input type="text" name="last" value="Grastlath" size="23"><br>
<input type="button" name="valid" value="Validate" onclick="validate()">
<div id="fullresponse"><span/></div>
<div id="sales1Lastname"><span/></div>
接下来是java脚本:
var data =
{
"sales": [
{ "firstname" : "John", "lastname" : "Brown" },
{ "firstname" : "Marc", "lastname" : "Johnson" }
] // end of sales array
}
function validate()
{
var p = document.forms['info'];
data['sales'].push( { "firstname" : document.forms['info']['first'].value , "lastname" : document.forms['info']['last'].value } );
var dataString = JSON.stringify(data);
$.get('parser.php', { data: dataString}, showResult, "text");
}
function showResult(res)
{
$("#fullresponse").html("<br><b>Full response: </b><br>" +res);
var obj = JSON.parse(res);
var l = obj.sales.length - 1;
$("#sales1Lastname").html("<br><b>Lastname of sales[1]: </b><br>" +obj.sales[l].lastname);
}
现在PHP:
$logFile = 'logFile';
$req = $_REQUEST['data'];
$res = json_decode(stripslashes( $req ), true);
error_log("result: ".$req.", res=".json_encode($res), 3, $logFile);
error_log(", sales1_lastname: ".$res['sales'][1]['lastname'], 3, $logFile);
error_log("\n", 3, $logFile);
header("Content-type: text/plain");
echo json_encode($res);
?>
就像我说的,这很简单,但我现在所处的地方至少可以遵循我给出的所有伟大的建议......并阅读文档。
答案 1 :(得分:1)
在PHP中,您需要:
json_decode
INSERT
:http://www.w3schools.com/php/php_mysql_insert.asp