将json数据传递给smart suggest jquery插件

时间:2011-10-30 18:06:51

标签: php jquery arrays json

我已经购买了名为smart suggest的jquery插件,并希望将json数组作为数据而不是数组传递。

当前数据文件'sample-data.php'如下所示:


     array('image' => 'assets/images/fruits/apple.jpg', 'description' => 'One of America\'s favorite fruits.'),
                                    'Avocado' => array('image' => 'assets/images/fruits/avocado.jpg', 'description' => 'The avocado is a dense, evergreen tree, shedding many leaves in early spring.'),
                                    'Banana' => array('image' => 'assets/images/fruits/banana.jpg', 'description' => 'Bananas are fast-growing herbaceous perennials arising from underground rhizomes.'),
                                    'Gooseberry' => array('image' => 'assets/images/fruits/gooseberry.jpg', 'description' => 'Gooseberries are deciduous shrubs.'),
                                    'Grape' => array('image' => 'assets/images/fruits/grape.jpg', 'description' => 'Grapes come in large clusters.'),
                                    'Jackfruit' => array('image' => 'assets/images/fruits/jackfruit.jpg', 'description' => 'The jackfruit tree is handsome and stately.'),
                                    'Mango' => array('image' => 'assets/images/fruits/mango.jpg', 'description' => 'Mango trees make handsome landscape specimens and shade trees.'),
                                    'Papaya' => array('image' => 'assets/images/fruits/papaya.jpg', 'description' => 'The papaya is a short-lived, fast-growing, woody, large herb to 10 or 12 feet in height. It is also regarded by some as being delicious.'),
                                    'Peach' => array('image' => 'assets/images/fruits/peach.jpg', 'description' => 'These are great in the summertime.'),
                                    'Pear' => array('image' => 'assets/images/fruits/pear.jpg', 'description' => 'Pears are delicious fruits.'),
                                    'Pineapple' => array('image' => 'assets/images/fruits/pineapple.jpg', 'description' => 'The pineapple plant is a herbaceous perennial, 2-1/2 to 5 ft.'),
                                    'Rose Apple' => array('image' => 'assets/images/fruits/rose_apple.jpg', 'description' => 'The rose apple is a highly decorative evergreen large shrub.'),
                                    'Tamarind' => array('image' => 'assets/images/fruits/tamarind.jpg', 'description' => 'The bright green, pinnate foliage is dense and feathery in appearance.'),
                                    'White Sapote' => array('image' => 'assets/images/fruits/white_sapote.jpg', 'description' => 'The white sapote forms a medium to very large evergreen tree.'),
                                );
    $vegetables = array(
                                    'Alfalfa' => array('image' => 'assets/images/fruits/alfalfa.jpg', 'description' => 'One cup of raw, sprouted alfalfa seeds, contains 1.32 grams of protein.'),
                                    'Artichoke' => array('image' => 'assets/images/fruits/artichoke.jpg', 'description' => 'One medium artichoke cooked with no added salt has 3.47 grams protein.'),
                                    'Asparagus' => array('image' => 'assets/images/fruits/asparagus.jpg', 'description' => 'Half cup (about 6 spears) cooked with no added salt contains 2.16 grams of protein.'),
                                    'Broccoli' => array('image' => 'assets/images/fruits/broccoli.jpg', 'description' => 'Half cup of broccoli, cooked with no added salt contains 1.86 grams protein.'),
                                    'Carrots' => array('image' => 'assets/images/fruits/carrots.jpg', 'description' => 'Half cup cooked with no added salt contains 0.59 grams protein.'),
                                    'Celery' => array('image' => 'assets/images/fruits/celery.jpg', 'description' => 'One cup of celery, cooked, boiled, drained with no added salt has 1.25 grams protein.'),
                                    'Corn' => array('image' => 'assets/images/fruits/corn.jpg', 'description' => 'One large ear of yellow corn, cooked with no salt contains 4.02 grams protein.'),
                                    'Green Pepper' => array('image' => 'assets/images/fruits/green_pepper.jpg', 'description' => 'One small raw pepper contains 0.64 grams protein.'),
                                    'Mushroom' => array('image' => 'assets/images/fruits/mushroom.jpg', 'description' => 'Half a cup of raw mushrooms contains 1.08 grams of protein.'),
                                    'Onion' => array('image' => 'assets/images/fruits/onion.jpg', 'description' => 'One small onion cooked without salt contains 0.82 grams protein.'),
                                    'Potato' => array('image' => 'assets/images/fruits/potato.jpg', 'description' => 'One medium baked potato without salt contains 4.33 grams of protein.'),
                                    'Spinach' => array('image' => 'assets/images/fruits/spinach.jpg', 'description' => 'One cup of raw spinach contains 0.86 grams of protein.'),
                                    'Squash' => array('image' => 'assets/images/fruits/squash.jpg', 'description' => 'One cup of sliced summer squash, boiled with no added salt contains 1.87 grams of protein.'),
                                );
    ?>

这个数组被传递到'search_multiple.php'文件中,我希望将其作为JSON传递:


     array(), 'vegetables' => array());
    foreach ($fruits as $name => $data)
    {
        if (stripos($name, $q) !== false)
        {
            $results['fruits'][$name] = $data;
        }
    }
    foreach ($vegetables as $name => $data)
    {
        if (stripos($name, $q) !== false)
        {
            $results['vegetables'][$name] = $data;
        }
    }

    /* Get the data into a format that Smart Suggest will read (see documentation). */
    $final_fruits = array('header' => array(), 'data' => array());
    $final_fruits['header'] = array(
                                                                            'title' => 'Fruits',                                        # Appears at the top of this category
                                                                            'num' => count($results['fruits']),         # Displayed as the total number of results.
                                                                            'limit' => 5                                                        # An arbitrary number that you want to limit the results to.
                                                                        );
    foreach ($results['fruits'] as $name => $data)
    {
        $final_fruits['data'][] = array(
                                                            'primary' => $name,                                                                                         # Title of result row
                                                            'secondary' => $data['description'],                                                        # Description below title on result row
                                                            'image' => $data['image'],                                                                          # Optional URL of 40x40px image
                                                            'onclick' => 'alert(\'You clicked on the '.$name.' fruit!\');', # JavaScript to call when this result is clicked on
                                                            'fill_text' => strtolower($name)                                                                        # Used for "auto-complete fill style" example
                                                        );
    }

    $final_vegetables = array('header' => array(), 'data' => array());
    $final_vegetables['header'] = array(
                                                                            'title' => 'Vegetables',                                        # Appears at the top of this category
                                                                            'num' => count($results['vegetables']),         # Displayed as the total number of results.
                                                                            'limit' => 5                                                                # An arbitrary number that you want to limit the results to.
                                                                        );
    foreach ($results['vegetables'] as $name => $data)
    {
        $final_vegetables['data'][] = array(
                                                            'primary' => $name,                                                                                                 # Title of result row
                                                            'secondary' => $data['description'],                                                                # Description below title on result row
                                                            'image' => $data['image'],                                                                                  # Optional URL of 40x40px image
                                                            'onclick' => 'alert(\'You clicked on the '.$name.' vegetable!\');', # JavaScript to call when this result is clicked on
                                                            'fill_text' => strtolower($name)                                                                        # Used for "auto-complete fill style" example
                                                        );
    }

    /* Output JSON */
    $final = array($final_fruits, $final_vegetables);
    header('Content-type: application/json');
    echo json_encode($final);
    die();
    ?>

我想知道如何将json数据传递到'search_multiple.php'文件中。例如:

<?php
$fruits = '{
    "Apple":{"image":"assets/images/fruits/apple.jpg","description":"One of America\'s favorite fruits."},
    "Avocado":{"image":"assets/images/fruits/avocado.jpg","description":"The avocado is a dense, evergreen tree, shedding many leaves in early spring."}
    "Banana":{"image":"assets/images/fruits/banana.jpg","description":"Bananas are fast-growing herbaceous perennials arising from underground rhizomes."},
    "Gooseberry":{"image":"assets/images/fruits/gooseberry.jpg","description":"Gooseberries are deciduous shrubs."}
    "Grape":{"image":"assets/images/fruits/grape.jpg","description":"Grapes come in large clusters."},
    "Jackfruit":{"image":"assets/images/fruits/jackfruit.jpg","description":"The jackfruit tree is handsome and stately."}
    "Mango":{"image":"assets/images/fruits/mango.jpg","description":"Mango trees make handsome landscape specimens and shade trees."},
    "Papaya":{"image":"assets/images/fruits/papaya.jpg","description":"The papaya is a short-lived, fast-growing, woody, large herb to 10 or 12 feet in height. It is also regarded by some as being delicious."}
    "Peach":{"image":"assets/images/fruits/peach.jpg","description":"These are great in the summertime."},
    "Pear":{"image":"assets/images/fruits/pear.jpg","description":"Pears are delicious fruits."},
    "Pineapple":{"image":"assets/images/fruits/pineapple.jpg","description":"The pineapple plant is a herbaceous perennial, 2-1/2 to 5 ft."}
    "Rose Apple":{"image":"assets/images/fruits/rose_apple.jpg","description":"The rose apple is a highly decorative evergreen large shrub."},
    "Tamarind":{"image":"assets/images/fruits/tamarind.jpg","description":"The bright green, pinnate foliage is dense and feathery in appearance."}
    "White Sapote":{"image":"assets/images/fruits/white_sapote.jpg","description":"One cup of sliced summer squash, boiled with no added salt contains 1.87 grams of protein."},
            }';
$vegetables = '{
    "Alfalfa":{"image":"assets/images/fruits/apple.jpg","description":"One of America\'s favorite fruits."},
    "Artichoke":{"image":"assets/images/fruits/avocado.jpg","description":"The avocado is a dense, evergreen tree, shedding many leaves in early spring."}
    "Asparagus":{"image":"assets/images/fruits/banana.jpg","description":"Bananas are fast-growing herbaceous perennials arising from underground rhizomes."},
    "Broccoli":{"image":"assets/images/fruits/gooseberry.jpg","description":"Gooseberries are deciduous shrubs."}
    "Carrots":{"image":"assets/images/fruits/grape.jpg","description":"Grapes come in large clusters."},
    "Celery":{"image":"assets/images/fruits/jackfruit.jpg","description":"The jackfruit tree is handsome and stately."}
    "Corn":{"image":"assets/images/fruits/mango.jpg","description":"Mango trees make handsome landscape specimens and shade trees."},
    "Green Pepper":{"image":"assets/images/fruits/papaya.jpg","description":"The papaya is a short-lived, fast-growing, woody, large herb to 10 or 12 feet in height. It is also regarded by some as being delicious."}
    "Mushroom":{"image":"assets/images/fruits/peach.jpg","description":"These are great in the summertime."},
    "Onion":{"image":"assets/images/fruits/pear.jpg","description":"Pears are delicious fruits."},
    "Potato":{"image":"assets/images/fruits/pineapple.jpg","description":"The pineapple plant is a herbaceous perennial, 2-1/2 to 5 ft."}
    "Spinach":{"image":"assets/images/fruits/rose_apple.jpg","description":"The rose apple is a highly decorative evergreen large shrub."},
    "Squash":{"image":"assets/images/fruits/tamarind.jpg","description":"The bright green, pinnate foliage is dense and feathery in appearance."}
            }';
?>

请帮帮我!!我无法在PHP中编码

由于

卡比尔

1 个答案:

答案 0 :(得分:4)

$dp=mysql_select_db('test');
mysql_query('SET NAMES UTF8');
$sql = mysql_query('select * from users');

while($res = mysql_fetch_assoc($sql)){
$users[$res['username']] = array(); 
$users[$res['username']]['image'] = $res['profile_picture'];
$users[$res['username']]['email'] = $res['email'];
}

我有一个名为test和table的数据库,名为users with fields(username,email,profile_picture),我正在搜索用户名以获取电子邮件和图像(看起来像facebook搜索)。 这个数组会自动从数据库生成你想要的数组,只需搜索用户名,然后根据你的需要进行更改。