使用PHP和jQuery循环使用JSON数据,减少click事件

时间:2014-03-13 14:37:33

标签: javascript php jquery ajax json

所以我在我的主页上建立了一个显示提示的区域。提示每天都会更改,并使用PHP显示JSON的相应提示。

    // SET LANGUAGE 
    $lang = "english";
    $config = 'config-english.php';
    if(isset($_GET['language']) && $_GET['language'] == 'spanish')
    {
        $lang = 'spanish';
        $config = 'config-spanish.php';
    }

我还在其下方添加了“查看上一个提示”。顶部有一个语言选择器,所以我使用PHP通过检查$ _GET变量来更改语言变量,并使用JSON来提取提示信息。我无法概念化如何索引json数据并使用该索引将当前日期与相应的提示日期进行比较并显示前一天的提示。

我正在考虑使用ajax重写它。我尝试了$ .each()但它没有提供对索引的足够控制。这里我使用jQuery for循环,所以指定数组,然后指定一个键:value。

jQuery是否为密钥索引:默认值项,所以我可以这样做:

 $("btn").prev().show(item[i]-1);  

JSON(外部文档):

    {
    "3/12": "Tip number 1.",
    "3/24": "Tip number 2.",
    "3/25": "Tip number 3",
     }

PHP拉入json(从外部页面显示对应于今天日期的提示)

$tipsjson = file_get_contents("scripts/tips-$lang.json");
$y = json_decode($tipsjson, true);
$day = date('n/d');
$current_tip =  array_search($day,array_keys($y));
echo $y[$day];

jQuery - 传入在PHP脚本中创建的JSON变量并循环遍历json(这是我正在努力的地方)

$(document).ready(function() {
var tips = <?php echo $tipsjson; ?>;
var current_tip = <?php echo current_tip; ?>;
    for ( var i=0; i < tips.length; i++ )
    {
    var item = tips;
    console.log(tips);
    }

     $('.previous').on('click', function() 
    {
    // Decrement over the index and show previous json item when clicked                        
    });

}); // doc.ready

$ y的数组结构

Array
(
[3/13] => Tip number 1.
[3/24] => Tip number 2.
[3/25] => Tip number 3.
)

0 个答案:

没有答案