2009-09-27 2 views
0

원하는 작업 : 각 버튼을 누르면 해당 값이 표시됩니다. 현재 반환되는 값은 항상 "1"입니다. json.php 파일은 결국 데이터베이스의 레코드를 업데이트하는 데 사용됩니다.jQuery/Ajax/Json - 동일한 클래스 이름을 가진 입력에 대해 제출시 해당 값 표시

도움을 주시면 감사하겠습니다. 감사! 여기

는 json.php 파일입니다 :

<?php 

    if(isset($_POST['hidden'])) { 

    $data['value'] = $_POST['hidden']; 

    } 

    echo json_encode($data); 

?> 

그리고 여기에 HTML : 당신은 그냥 내가 생각하는 (그 값에 의해, 눌러 진 버튼을 표시하려면

<html> 
<head> 
<title>jQuery/Ajax - Display respective values on submit for inputs with same class name</title> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 

    $("form[name=form1]").submit(function() { 
    $.post("json.php", { hidden : $(".check").siblings(".hidden").val() }, 
     function(data){ 
     alert(data.value); 
     }, "json"); 
     return false; 
    }); 

}); 
</script> 
</head> 
<body> 

<form action="<?php $_SERVER['PHP_SELF']; ?>" name="form1" method="post"> 
    <input type="submit" class="check" value="check1" /><br /> 
    <input type="submit" class="check" value="check2" /><br /> 
    <input type="submit" class="check" value="check3" /> 
    <input class="hidden" name="hidden" type="hidden" value="1" /> 
    <input class="hidden" name="hidden" type="hidden" value="2" /> 
    <input class="hidden" name="hidden" type="hidden" value="3" /> 
</form> 


</body> 
</html> 

답변

0

은 무엇입니까 질문이 명확하지 않고 JSON을 사용하여 달성하려는 내용을 잘 모르는 경우)

var currentFocus = '';  

$("input.check").click(function() { 
    currentFocus = $(this).val(); 
}); 

// then the standard code you have, displaying what was last pressed. 
$("form[name=form1]").submit(function() { 
$.post("json.php", { hidden : $(".check").siblings(".hidden").val() }, 
    function(data){ 
     alert(currentFocus); 
    }, "json"); 
    return false; 
}); 

코드를 사용하는 현재의 방식은 양식이 제출 될 때마다 $.post()이 트리거 됨으로써 어떤 버튼이 눌려 졌는지 실제로 알 수 없다는 의미입니다. 건너 뛴 숨겨진 필드는 모두 동일한 이름을가집니다. 값이 같은 이름을 가진 다른 숨겨진 필드로 덮어 쓰게된다는 것을 의미합니다.

+0

json.php는 결국 db의 레코드를 업데이트하는 데 사용됩니다. – Scott

+0

이것은 작동하지 않습니다. – Scott

+0

예 .. http://www.jakeisonline.com/stackoverflow/1483346-jquery-ajax-json-display-respective-values-on-submit-for-inputs-with-same-class/ 또한 아마도 jQuery.getJSON 사용을 고려해보십시오. - http://docs.jquery.com/Ajax/jQuery.getJSON – jakeisonline

관련 문제