在不使用数据库的情况下以JSON格式从服务器获取响应?

时间:2013-09-14 16:49:09

标签: javascript php ajax json jquery

我是服务器端编程的新手,我有一个form并且需要采取行动,当用户填写名称,地址和密码时,提交从那时起页面应该加载(就像本机提交)和应显示新数据(数据在JSON文件中可用)。

我在服务器上有JSON文件。是否可以在不使用数据库的情况下以JSON格式从服务器获取响应?

HTML:---

<form action="https://domain.com/jsonfilelocation/json.json">
    <input type="text" name="name" />
    <input type="text" name="address" />
    <input type="text" name="pincode" />
    <input type="submit" name="submit" />        
</form>

JSON:--- json.json位于https://domain.com/jsonfilelocation/json.json

{
    "name": "kk",
    "address": "XYZ, New Delhi",
    "pincode": "1000001"
}

4 个答案:

答案 0 :(得分:1)

您可以将JSON字符串存储在本地变量服务器端,并将其作为客户端AJAX调用的结果返回,而无需访问数据库。

答案 1 :(得分:1)

如果您不介意使用JQuery库,那么您可能正在寻找的是JQuery getJSON,我强烈建议您这样做。

它基本上使用AJAX来请求json文件并解析它:

$.getJSON('https://domain.com/jsonfilelocation/json.json', function(data) {
    // 'data' is your object containing the parsed JSON data
    var new_name = data.name
    var new_address = data.address
    var new_pincode = data.pincode
    // ...

阅读我给你的文档链接,写得非常好。

答案 2 :(得分:1)

<?php
session_start();

//Variables
$ext    = '.json';
$me     = isset($_SESSION['me']) ? $_SESSION['me'] : $_SESSION['me'] = rand();
$file   = $me . $ext;

//If we have a post handle our data, write to a json file.
if ($_POST) {
    //Don't need the submit key in our data.
    unset($_POST['submit']);

    //Write to the file.
    $str    = json_encode($_POST);
    $fp     = fopen($file, 'w') or die("can't open file");
    fputs($fp, $str);
    fclose($fp);
}

//Check if there is a file with our session name.
if (file_exists($file)) {
    //Get the file content and json decode it.
    $json   = file_get_contents($file);
    $values = json_decode($json);
}
?>
<!-- Form with pre-populated values, if they are set -->
<form action=""method="post">
    <input type="text" name="name" value="<?php print isset($values->name) ? $values->name : ''; ?>" />
    <input type="text" name="address" value="<?php print isset($values->address) ? $values->address : ''; ?>"/>
    <input type="text" name="pincode" value="<?php print isset($values->pincode) ? $values->pincode : ''; ?>"/>
    <input type="submit" name="submit"/>
</form>

由你决定让它变得艰难。但我认为这应该让你对这些可能性以及如何设置它有一个很好的了解。

答案 3 :(得分:0)

只在请求时请求页面https://domain.com/jsonfilelocation/json.json