如何使用$ .each函数接收两位数而不是一位数

时间:2012-07-12 09:18:49

标签: php mysql jquery

我已经解决了从mysql接收数据的问题,它们将出现在表单(23,34,65,67 ......等)中,但是通过使用$ .each()函数出现了一个新问题,我只收到像2,3,3,4这样的单位数字,而不是23,34 ......等等,如何使用$ .each()函数将数据切分为两位数?

$("#add").click(function()
{
    $.ajax({
        type: "POST",
        url: "ajax.php",
        data: "buttons="+ tab_of_button,
        success: function(){
            $('div.success').fadeIn();

            $.get("sendback.php",function(data)
            {

                 $.each(data, function(index, value)
                 {
                     alert(value);

                 });
            });
        }
    });
    return false;
}

sendback.php

<?php

$ask = mysql_query("SELECT numbers FROM buttons");
if(!$ask)
{
    die('Incorrect ask'.mysql_error());
}
else{
    while ($row = mysql_fetch_assoc($ask)) 
    {

        $tab[] = $row['number'];
        foreach($tab as $buttons)
        {
            echo $buttons;

        }

    }
    mysql_free_result($ask);

}
?>

HTML

<html>
<body>
.
.
.
<ul id="_button">
<li id="01" >01</li>
<li id="02" >02</li>
<li id="03" >03</li>
<li id="04" >04</li>
<li id="05" >05</li>
<li id="06" >06</li>
.
.
.
<li id="40" >40</li>
</ul>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

您应该修复php文件的输出。如果它给你一个字符串(数字),你在客户端上唯一能做的就是分别解析每个字符,或整个字符串。

这为您提供了一个json数组,因此您可以获取客户端上的每个元素。

$tab = array();
while ($row = mysql_fetch_assoc($ask)) 
{

    $tab[] = $row['number'];
}
echo json_encode($tab);

答案 1 :(得分:0)

看起来您没有使用从ajax调用返回的数据,因为参数名称在引号中。您可以尝试更改此内容:

$('#_button').children().each(function() {
    $(this).find('data').css("background","grey");
    $(this).find('data').attr("disabled",true); 
});

到此:

$('#_button').children().each(function() {
    $(this).find(data).css("background","grey");
    $(this).find(data).attr("disabled",true); 
});

答案 2 :(得分:0)

我接收数据的东西是字符串,所以,使用parseInt将数据更改为数字,之后我使用$ each函数但只得到数组的第一个索引,更改的代码在下面,也许我做错了什么?

$.post('sendback.php', function(data) 
                    {

                  var arr;
                  var number;

                  arr = jQuery.parseJSON(data);
                  $.each(arr, function(key, value) 
                 {

                     number = parseInt(value);
                     $("#_button li").eq((number)-1).css("background","grey");


                  });
                });