只有第一个值可以在php

时间:2015-12-24 17:47:11

标签: php jquery html

我有php函数从数据库中检索用户信息并将它们设置为5个变量。其中4个是可见的,其中一个是隐藏的。当我运行该功能时,正确显示用户列表。并且我想在点击事件中使用jquery访问隐藏变量,(为了测试jquery工作正常我尝试提醒隐藏变量的值)但是当我点击列表中的每个用户时它显示属于的隐藏变量的值列表中的第一个用户。

有我的PHP代码(只有重要部分):

$contacts->bind_result($contactID, $name, $lastName, $photo, $emotion);
while($contacts->fetch())
{
    $this->setContactID($contactID);
    $this->setName($name);
    $this->setlastName($lastName);
    $this->setPhoto($photo);
    $this->setEmotion($emotion);
    ?>
        <!-- this part display photo, name and last name and emotion of contacts. -->

        <div style="height:60px">
            <div style='margin-top:5px; margin-right:5px; display:inline; float:left'>
               <?php echo "<img src=.." ,$this->getPhoto()," height='45' width='45' />" ?>
            </div>                 
            <div style="display:table; padding-top:5px; padding-bottom:10px">
               <?php echo $this->getName() . "  " . $this->getlastName(); ?>
            </div>
            <div style="display:table">
               <?php echo $this->getEmotion(); ?>
            </div>
            <input type="hidden" class="contId" value="<?php echo $this->getContactID(); ?>" />
        </div>

    <?php

}

我在jquery中使用(.load)函数在我的html中使用(contacts)id在div中加载这个php函数,并且我在这个div中使用jquery ui使列表中的每个用户都可以选择。并且我想在列表中选择每个用户隐藏值时访问它们。

这是我的Jquery代码:

$("#contacts").load("displayContact.php");

$("#contacts").selectable({
    selected:function(){alert ($(".contId").val());}
    });

4 个答案:

答案 0 :(得分:1)

我会利用回调事件。这就是我要做的事情:

$("#contacts").selectable({
    selected: function (event, ui) {
        var id = $(ui.selected).find(".contId").val();
        alert(id);
    }
});

来源: http://api.jqueryui.com/selectable/

答案 1 :(得分:1)

假设您正在尝试获取所选分区中包含的隐藏字段的值,您可以使用以下代码实现此目的。

    $("#contents").selectable({
        selected : function(event, ui) {
           var contactId = $(ui.selected).find('.contId').eq(0).val();
           alert(contactId); 
       }
    });

根据jqueryUI documentation,所选事件处理程序获取两个参数,第二个参数是被选中的元素。从那里我们只需找到&#34; contId&#34; class,并获取第一个元素的值(在您的情况下只有一个)。

我希望这会有所帮助,圣诞快乐。

答案 2 :(得分:0)

试试这个,(未经测试,希望它有效)

$("#contacts").selectable({
    selected:function(event, ui){ 
        alert ($( ui.selected ).closest( ".contId" ).val());
    }
});

答案 3 :(得分:0)

正如我已经提到的,问题是你有 5 (不是div,ok),但是输入字段具有相同的类contId。因此,单击每个要查看单击的值的值。

正如我在文档中看到的,对于selected属性,您可以有两个参数:eventui。并且您拥有保存所选元素的属性selected。我认为你应该像这样定义selectable

$("#contacts").selectable({
    selected:function(event, ui){ 
        alert ($( ui.selected ).find( ".contId" ).val());
    }
});

我们在这里做的是:

  1. 获取一个单击的对象并将其转换为jquery对象:$( ui.selected )
  2. 在此单击的对象中查找包含类contId的元素:find( ".contId" )
  3. 获取它的价值:val()