2011-12-02 4 views
2

나는 foreach 루프에서 몇 입력 필드를 만드는 오전 :생성 된 텍스트 입력에서 값을 가져 오는 방법은 무엇입니까?

<?php foreach($this->results as $value){?> 
<td><a href="$" class="buttonDetails">View Detail</a> 
<input name="processor" id="processor" type="text" value="<?php echo $value['processor']; ?>"> 
<input name="auth_code" class="auth_code" type="hidden" value="<?php echo $value['auth_code']; ?>"></td> 
<? } ?> 

나에게 같은 줄 것입니다 :

$('.buttonDetails').live("click", function(){ 
    var processor = $('.processor').val(); 
    alert(processor); 

    $.ajax({ 
      type: 'POST', 
      dataType: 'json', 
      url: '/decline/list', 
      async: false, 
      data: { 
       processor: processor, 
       processor: auth_code 
       }, 
      success: function(json) { 
       $('#details').html(json.processor); 
      } 
    }); 
    return false; 
}); 

:

<td> 
<a href="$" class="buttonDetails">View Detail</a> 
<input name="processor" class="processor" type="text" value="19"> 
<input name="auth_code" class="auth_code" type="text" value="4"> 
</td> 
<td> 
<a href="$" class="buttonDetails">View Detail</a> 
<input name="processor" class="processor" type="text" value="9"> 
<input name="auth_code" class="auth_code" type="text" value="11"> 
</td> 
... 

그때 내가 값을 얻기 위해 노력을 내가 가지고있는 문제는 내 경보가 링크를 클릭 할 때 동일한 번호 (일반적으로 첫 번째 입력의 첫 번째 값)를 얻는다는 것입니다.

이 문제를 해결할 수있는 아이디어가 있습니까? 내가 아이디의와 replacin 클래스를 시도하고 '라이브'만에 '클릭'한 여전히 아무것도

편집 : 나는 그가 끌어 할 값을 알 수 링크 그래서 클래스를 구별 할 필요가 생각

.. ??

편집 : 'auth_code'도 가져 오려면 어떻게해야합니까?

+0

무엇을 기대합니까? 버튼에 가장 가까운 입력 값 또는 선택기와 일치하는 모든 입력 값이 연결됩니까? –

+0

나는 링크를 클릭하여 그 옆에있는 입력 값을 얻고 싶습니다 – Patrioticcow

+0

오류의 원인은'$ ('. processor')'가 프로세서와 함께 모든 태그를 반환하고있는 것 같습니다 클래스 (여러 개가 있음). http://api.jquery.com/class-selector/ 이제 전체 공개로 jQuery를하지는 않지만 을 앵커 태그 안에 넣으면 올바르게 액세스 할 수 있습니다. (클래스 이름 대신 앵커 내의 요소로 사용). –

답변

4

시도 :

$('.buttonDetails').live("click", function(){ 
    var processor = $(this).next(".processor").val(); 
    alert(processor); 
    /* snip */ 
}); 

사용 next가 클릭 된 링크 옆에있는 입력을 얻을.


업데이트 (언급 할 예정).

당신은 유사 대신 nextAll를 사용하여 auth_code을 찾을 수 :

var auth_code = $(this).nextAll(".auth_code").val(); 

을 또한, 당신은 당신의 AJAX 호출에 대한 올바른 값을 제공하고 있는지입니까? processor을 두 번 지정하는 것 같습니다. processor에 지정된 첫 번째 값을 덮어 씁니다.

+0

nice,'processor'는 이제 괜찮습니다.하지만'auth_code'는 아이디어가 없습니다. – Patrioticcow

+0

@Patrioticcow : 내 업데이트를 참조하십시오. 'nextAll'을 사용하는 것만 큼 간단해야합니다. –

+0

감사합니다. – Patrioticcow

1

그냥 다음 항목은 다음에 jQuery를()를 사용하려는 경우

$('.buttonDetails').live("click", function(){ 
    var processor = $(this).next().val(); 
    alert(processor); 
    return false; 

}); 여기

는 바이올린

http://jsfiddle.net/znge4/1/

0

입니다 당신은 더 문제 때문에이 라인의 클릭 된 앵커 태그 같은 값을 얻을 :

var processor = $('.processor').val(); 

당신은 모든 전체 DOM을 검색하는 모든 입력을 반환하는 'processor'클래스를 가진 요소 .val()은 FIRST 일치 (첫 번째 입력)의 값을 반환합니다.

대신을 시도해보십시오

var processor = $(this).next('.processor').val(); 
1
 data: { 
      processor: processor, 
      processor: auth_code 
      }, 

'AUTH_CODE'라인은 '프로세서'라인을 덮어 쓰게됩니다, 효과적으로

 data: { 
      processor: auth_code 
      }, 

만하고. 연관 배열/객체에는 두 개의 서로 다른 값을 가진 단일 키를 사용할 수 없습니다. 동일한 이름 필드를 PHP에 제출하려면 fieldname[] 표기법을 사용하십시오.이 표기법은 PHP가 해당 양식 필드를 배열로 처리하도록 알려줍니다.

<input name="processor[]" ...> 
<input name="processor[]" ...> 

하고 당신에게 다음의 요소를 제공해야하는) (

data : $(this).serialize() 
1

사용 JQuery와 다음 내용을 통해 JQuery와에 데이터를 전달

0

당신이해야 할 모든 요소에서 값을 얻을 수있다 그들은 클릭했다. Jquery의 'this'키워드를 사용하면 문제가 해결됩니다.

$('.buttonDetails').live("click", function(){ 
var processor = $(this).next().val(); 
alert(processor); 

'은행'이 'A'가이 경우에, 다음 다음 다음 형제를 반복합니다, 클릭하여 입력을 선택 것이고, 발은 이전과 그 값을 검색합니다.

관련 문제