1

我已经解决了从 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;
}

回传.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>
4

3 回答 3

1

您应该修复 php 文件的输出。如果这为您提供了一个(数字)字符串,那么您在客户端上唯一能做的就是单独解析每个字符,或者将字符串作为一个整体解析。

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

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

    $tab[] = $row['number'];
}
echo json_encode($tab);
于 2012-07-29T07:43:39.550 回答
0

I thing that receive data are string,so, changed the data to number using parseInt, after I used $each function but get only first index of array, changed code is below, maybe i done something wrong?

$.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");


                  });
                });
于 2012-08-03T23:59:08.920 回答
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); 
});
于 2012-07-19T03:44:17.647 回答