2012-03-23 6 views
0

동적으로 채워지는 테이블이 있습니다. 각 행에는 편집 할 수있는 두 개의 텍스트 필드가 있습니다. 사용자가 저장 버튼을 클릭하면, 난 알 그 입력 값을 읽고 그에 따라 업데이트 할 :테이블에서 동적으로 생성 된 텍스트 필드의 값과 ID를 가져옵니다.

echo "<td><input value='".$row[0]."' type='hidden'>$sql1[0]</td><td>$sql1[1]</td> 
    <td><input type='text' id='disc-".$row[0]."' value='".$row[3]."'></td> 

$row[0]가 데이터베이스에서 해당 행의 ID이며 $row[3] 현재 저장되어있는 값입니다. 내가 성취하려고하는 것은 사용자가 저장을 클릭하면 ID를 기반으로 텍스트 필드에서 사용자가 입력 한 값을 읽어서 업데이트 할 수 있다는 것입니다.

for(var i = 0; i < $('#order_basket [id |= "disc"]').length; i++) { 
    alert($('#order_basket [id|="disc"]')??.val()); 
} 

지금 리턴 길이가 일치하지만 ID와 상기 어레이 내에 저장되는 값을 판독하는 것을 시도하고있다 : 즉, 이들 요소를 선택하는 자바 스크립트를 들어.

참고 :

<td><input type='text' class="field1" id='disc-".$row[0]."' value='".$row[3]."'></td> 

그런 다음 사용하여이를 조회 할 수 있습니다 : 같은 행에 1 개 이상의 텍스트 필드가 다른 텍스트 필드는 id='disc-".$row[0]."'

답변

2

시도를 사용하여 값을 반복 이.

var values = {}; 
$('#order_basket input[id^="disc"]').each(function(){ 
    values[this.id] = this.value; 
}); 

이제 values 목적은

업데이트 영업의 기반으로 모든 입력 요소를 찾기 위해 나는 속성을 사용하고

참고 선택 ^=로 시작하는 입력 요소의 각각의 ID/값 쌍을 포함합니다 논평.

도움 않지만, 그냥 명확하게하기 위해
var ids = [], values = []; 
$('#order_basket input[id^="disc"]').each(function(){ 
    ids.push(this.id); 
    values.push(this.value); 
}); 
+0

, 그것은 의미 하는가 : '값 [1] = 23' 곳 (1) ID와 (23) 값입니다? – Namit

+0

'values'는 배열이 아니라 객체입니다. id [1] 인 입력 요소의 값인 '23'을주는 value [ "1"]처럼 사용할 수 있습니다. – ShankarSangoli

+0

어떻게 그것을 모두 별도의 배열에 저장할 수 있습니까? id []와 values ​​[] 같은가? – Namit

0

또한 클래스 이름을 사용할 수있다

alert($('.field1').val()) 

나 :

alert($('.field1').attr('id') 
이 있는지

확인할 수 있습니다 더 후 다음

alert($('.field1').length) 

(클래스 이름은 고유해야 할 필요가 없기 때문에) 일 할 수 있습니다 루프 또는 .each()에 대한

관련 문제