2012-11-21 6 views
0

내가 PHP와 버튼의 테이블을 생성하고있어 생성분리하는 방법 PHP는 버튼

echo ' <td"> 
<form action="test.php" method="POST"> 
<input type="hidden" id="node" name="node" value="'.$fnode->{'name'}.'"> 
<input type="hidden" id="service" name="service" value="'.$flavor.'"> 
<input type="hidden" id="running" name="running" value="false"> 
<input type="submit" value="OFF" class="button"> 
</form> 
</td>'; 

나는 JQuery와 아약스를 통해 다시로드하지 않고 값을 보내려면 내가 그것을 위해이 코드를 사용하고 있습니다 :

. $ (". 버튼")을 클릭 (함수() { $ ('. 오류') 숨기기();

var dataString = 'node='+ document.getElementById('node').value + '&service=' + document.getElementById('service').value + '&running=' + document.getElementById('running').value; 

    $.ajax({ 
     type: "POST", 
     url: "test.php", 
     data: dataString, 
     success: function() { 
      alert ("Success"); 
     } 
    }); 
    return false; 
}); 

코드가 지금까지 작동합니다 - 그냥 항상 첫 번째 형태의 데이터를 전송합니다.. 사이를 구분하는 가장 좋은 방법은 무엇입니까? 모든 단추입니다. 나는 형태로 카운터를 사용할 수 있지만 js "ifs"를 어떻게 정확하게 써야할까요? 더 우아한 방법이 있습니까? 양식 수가 동적입니다.

답변

0

가장 좋은 방법은 양식 요소에 고유 한 ID를 사용하는 것입니다. 또 다른 방법은 클래스를 동일한 이름의 여러 요소로 설정하는 것입니다.

그러나, 다음과 같은 접근 방식이 훨씬 바람직하다 :

$("form").on("submit", function() { 
    $.ajax({ 
     type: "POST", 
     url: "test.php", 
     data: $(this).serialize(), 
     success: function() { 
      alert ("Success"); 
     } 
    }); 
    return false; 
}); 

(어쨌든 양식 요소에서 id 속성을 중복 제거하는 것을 잊지 마세요.)

1

는 당신의 부모 폼을 잡을 수 있습니다 버튼을 클릭하기 만하면 충분하지만 다른 양식을 위해 양식에 고유 한 ID를 원할 수도 있습니다. 또한 입력에서 ID를 제거하거나 고유하게해야합니다. 당신은 줄 수

echo ' <td"> 
<form action="test.php" method="POST" id="form_node_' . $fnode->{'name'} . '> 
<input type="hidden" name="node" value="'.$fnode->{'name'}.'"> 
<input type="hidden" name="service" value="'.$flavor.'"> 
<input type="hidden" name="running" value="false"> 
<input type="submit" value="OFF" class="button"> 
</form> 
</td>'; 


$(".button").click(function(e) { 
    e.preventDefault(); 
    $('.error').hide(); 
    var $form = $(this).closest('form'), // the closest parent form 
     dataString = $form.closest('form').serialize(); // serialize the values instead of manually encoding 
    $.ajax({ 
     type: "POST", 
     url: "test.php", 
     data: dataString, 
     success: function() { 
      alert ("Success submitting form ID " + $form.attr('id')); 
      // you can now modify the form you submitted 
     } 
    }); 
    return false; 
}); 
+0

이 정답입니다. – OneOfOne

0

각 버튼에게 ID를 제출

<input id="button-1" type="submit" value="OFF" class="button"> 

을 한 후 특정 버튼의 클릭의 이벤트 트리거 :

$("#button-1").click(function() { ... }); 
관련 문제