2012-09-01 48 views
0

我使用的J-查詢和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] 

我想將具有某些值的文本框列表追加到表格中,然後計算文本框中所有值的總和。 請幫忙。

+0

不要使用mysql_XXX函數,它們已被棄用。請切換到mysqli_XXX或PDO。 – Barmar

回答

1

$('#build_id')應該$('#'+build_id)和計算總的所有值,你應該把var total=0;回調函數外,函數應該包含

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

另一個問題是,該表的每一行有相同的id="build_$i",但ID必須是唯一的。

你真的打算在表格的開頭顯示$i,而不是在表格行嗎?

+0

如果你檢查jQuery代碼,那麼我會在發送到res.php頁面之前增加'i'的值。所以每次'i'的值都是不同的。並且不會顯示'i',我正在使用它查找我的錯誤。 – debal

+0

但res.php有循環'while($ data = mysql_fetch_assoc($ result))',它可以打印多行,並且它們每個都使用它接收的相同'$ i'作爲參數。 – Barmar

+0

不,它不會指向多行....該SQL查詢將只生成一行.. – debal