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