1

我正在尝试从我的 SQL DB 中选择 FirstNames,然后将它们分配给 JavaScript 变量。(每个变量必须是唯一的)

IE:具有以下名称数据库:

+---------+
|FirstName|
+---------+
|Michael  |
|Kevin    |
|John     |
|Michael  |
|Steven   |
|Michael  |
|Tara     |
|Nancy    |
|Nancy    |
|Steven   |
+---------+

以及以下查询:

DECLARE @result varchar(250)
SET @result = ''
SELECT @result = @result + FirstName + ',' FROM Consultants GROUP BY FirstName
select substring(@result, 0, len(@result)) as Name

我能够将所有唯一名称放入一个字符串中,如下所示:

Michael, Kevin, John, Steven, Nancy, Tara

这就是我现在卡住的地方......有没有办法从结果中提取名称并将它们分配给一个变量?

IE:

var Consultant 1 = Michael

var Consultant 2 = Kevin

var Consultant 3 = John

// And so forth....

我正在考虑从名称中构建一个数组,但我也陷入了尝试这样做的困境。

抱歉,如果在其他地方问过这个问题,但我没能在任何地方找到它。另外 - 我希望我已经足够清楚地解释了这一点。

编辑 我意识到我留下了很多信息。这一切都发生在我的asp页面上。

因此,SQL 将在我<%asp tags%>从数据库中获取信息中,然后我的 JavaScript 将在此之后进行。

4

4 回答 4

0

您是否尝试将 Ajax 与 jQuery 结合使用(http://api.jquery.com/jQuery.ajax/

然后您可以将结果数组编码为 JSON 并使用 javascript http://api.jquery.com/jQuery.parseJSON/对其进行解析

于 2013-10-29T14:39:50.227 回答
0

JSON 是您应该寻找的。

我正在考虑从名称中构建一个数组,但我也陷入了尝试这样做的困境。

如果你有一个用逗号分隔的字符串中的所有唯一名称,你可以构建一个这样的数组

var string = "Michael,Kevin,John,Steven,Nancy,Tara";
var array =   string.split(",");
于 2013-10-29T14:40:33.227 回答
0

我会怎么做...

<?php
$results =  results from your database query
$jsonResults = convert results to JSON. There is a lot of online help for this
?>

<html>
<body>
<head>
<script>
var $json = <?php echo $jsonResults; ?>;

// do stuff with jquery 
</script>
</head>

</body>
</html>
于 2013-10-29T14:43:34.560 回答
0

如果你想创建数组试试这个

var arrNames = result.split(",");

如果以上不起作用,请尝试以下一个

var s = '12,34,56';
var firstPos=0;
var secondPos=0;
var arrNames=[];
for ( var i = 0; i < s.length; i++ )
{
    // `s.charAt(i)` gets the character

    if(s.charAt(i) == ',' && i < s.length-1){
        secondPos=i;
        arrNames.push(s.substring(firstPos,secondPos));
        firstPos=i+1;
     }else if(i == s.length-1){
        secondPos=i;
        arrNames.push(s.substring(firstPos,secondPos+1));
     }
}
于 2013-10-29T15:10:35.420 回答