首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户在javascript中提供的数组名称

用户在javascript中提供的数组名称
EN

Stack Overflow用户
提问于 2013-01-22 03:18:20
回答 3查看 74关注 0票数 0

因此,我使用AJAX从我的数据库中获取行,然后将它们转换为一个具有变量标识符的数组,下面是PHP代码:

代码语言:javascript
复制
 $query_val = $_GET["val"];
  $result = mysql_query("SELECT * FROM eventos_main WHERE nome_evento LIKE '%$query_val%' OR local_evento LIKE '%$query_val%' OR descricao_evento LIKE '%$query_val%'");
  for($i=0;$i<mysql_num_rows($result);$i++){
    $array = array();
    $array[$query_val] = mysql_fetch_row($result);       //fetch result 
    echo json_encode($array);
  }

下面是javascript:

代码语言:javascript
复制
$('#s_query').keyup(function(){
        var nome = document.getElementById('s_query').value;
        $.ajax({                                      
            url: 'search.php',        
            data: '&val='+nome,
            dataType: 'json',     
            success: function(data)
        {
            console.log(nome);
            var image_loc = data.nome[7];
            console.log(image_loc);

如果我将行var image_loc = data.nome[7];更改为var image_loc = data.nidst[7];,它可以完美地工作。Nidst是我要搜索的术语。此代码返回错误:“未捕获TypeError:无法读取未定义的属性'7‘”。我该怎么办?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-22 03:21:59

使用:

代码语言:javascript
复制
var image_loc = data[nome][7];
票数 1
EN

Stack Overflow用户

发布于 2013-01-22 03:28:30

data.nome[7];正在尝试访问data的一个名为nome的属性,该属性不存在。由于您声明了一个保存所需属性名的变量nome,因此需要引用作为属性名,如data[nome][7]

示例:如果为var nome = 'foo',则data[nome][7]的计算结果为data['foo'][7],与data.foo[7]相同。

您正在做的是data.nome[7],它与data['nome'][7]相同,唯一有效的方法是if var nome = 'nome'

票数 3
EN

Stack Overflow用户

发布于 2013-01-22 03:28:08

另一个问题是服务器无法响应有效的json数据。尝试修改代码:

代码语言:javascript
复制
$array = array();
for ($i = 0; $i < mysql_num_rows($result); $i++) {
    $array[$query_val] = mysql_fetch_row($result);
}
die(json_encode($array));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14445654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档