无法捕获数据

时间:2012-09-01 09:28:36

标签: php ajax html-table textbox

我使用J-Query和AJAX将数据传递给res.php页面: -

attempt.php (我调用res.php的主页)

$.ajax(
                    {

                        url: "res.php", 
                        type: "POST",
                        data: data,     
                        success: function (data) 
                        {
                            var build_id='build_';
                            build_id += i;
                            alert(build_id);
                            $('#npc').append(data);
                            $('#build_id').attr('disabled','true');
                            var total = $("#build_id");
                            alert(total);
                        }
                    });

在res.php页面中,我使用传递的数据生成查询并从数据库中检索数据并计算总值并在文本框中显示总数。

res.php

$i = mysql_real_escape_string($_POST['i']);

$query = "select * from ";
$query = $query . $building;
$query = $query . " where lvl=" . $level;
$query = $query . ";";

$result = mysql_query($query) or die('Error in Child Table!');
echo $i;
while( $data = mysql_fetch_assoc($result))
{
$total_res = $data['lumber'] + $data['clay'] + $data['iron'] + $data['crop'];
echo '<tr><td>'. $building. '</td><td>'. $level. '</td><td><input type="text" style="width:70px" id="build_' . $i . '" value="' . $total_res . '"></td></tr>';
}

我正在使用id="build_' . $i . '"自动增加文本框的ID。直到这里一切都很顺利。

回到attampt.php页面, 当我尝试从文本框中访问数据时,我无法访问它。

我用来访问数据的代码是: -

                            var build_id='build_';
                            build_id += i;
                            $('#build_id').attr('disabled','true');
                            var total = $("#build_id");
                            alert(total);

代码末尾的警报功能提供以下输出: -

[object Object]

我试图将带有一些值的文本框列表附加到表中,然后计算文本框中所有值的总和。 请帮忙。

1 个答案:

答案 0 :(得分:1)

$('#build_id')应为$('#'+build_id)并计算所有值的总和,您应该将var total=0;放在回调函数之外,并且函数应该包含

total += $('#'+build_id).val(); 

另一个问题是表格的每一行都有相同的id="build_$i",但ID必须是唯一的。

你真的打算在表的开头显示$i,而不是在表格行中吗?