在JavaScript中抛出异常?

时间:2012-03-24 20:47:19

标签: javascript jquery

我的编程技巧不是很好,我希望有人能指导我。

我正在尝试将预测的搜索功能集成到网站中,我正在使用JQuery插件来执行此操作。我有搜索功能工作(最困难的部分),我只想定义一个条件,如果没有产品,库存显示“找不到匹配”或任何消息。我只是无法让条件工作,我遇到了语法问题,因为我甚至可以得到基本的if else结构。

感谢您的时间。

$().ready(function() 
{

    $("#name").hide();

    if ($("#course").autocomplete("get_course_list2.php", {
        width: 260,
    }));

    $("#course").result(function(event, data, formatted) {
        $("#name").hide();
        $("#course_val").val(data[1]);
        result = "<strong> Product ID: </strong>" + data[1] + "<strong> Product Name: </strong>" + data[0]+ "<strong> </strong>";
        result += "<a href=\"http://restoftheurl?id="+data[1]+"\">Click Here to view the product</a>";
        $("#name").html(result);



    });

});

1 个答案:

答案 0 :(得分:0)

如果data保留后端的响应,那么如果没有找到产品,您可以在data变量中设置一个标记;例如&#34; NODATA&#34 ;.然后在显示产品之前测试data值。

但更好的方法是使用JSON进行通信,因此您可以轻松地操作结果。

<强>更新

行。让我们通过简单的步骤来解决这个问题。你正在使用你不完全理解的jQuery插件。这个片段做了两件事,首先它请求你的后端(服务器上的get_course_list2.php)来获取数据,然后将它插入到DOM中。来自后端的数据存储在变量数据中(因为您选择此名称来描述回调的第二个参数)。

这是我所谈论的伪代码(以及它将如何运作):

BACKEND,get_something.php

$products = get_products_from_db();
if(count($products) > 0) {
    // lets print one products after a noter
    for(int i = 0; i < count($products); i++) {
        echo "<span>".$products[i]."</span>"
    }
} else {
    // nope, there is no products so lets tell frontend that there is nothing to display
    echo "NODATA";
}

FRONTEND,display_something.js

function(event, data, formatted) {
    if(data == "NODATA") {
        $(somewhereindom).html("No products");
    } else {
        $(somewhereindom).html(data); // data = "<span>Product 1</span><span>Prod 2</span>..."
    }
}