2013-10-14 2 views
2

양식 데이터를 ajax로 변수 $_SESSION에 저장하려고하는데 제대로 onchange 이벤트를 실행하거나 변수를 보낼 수 없습니다.양식 변수를 ajax로 바꾸기

양식 길이가 다양하므로 동적 변수를 사용하려고했습니다.

<script> 
    function orderValues(boxValue){ 
     $.post("/ajaxConnect.php",{value: $("qty_" + boxValue).val()}, 
     function(result) { 
      console.log('value saved'); 
     }); 
    } 
</script> 

<php 
    echo "<div id=\"prodBox\">QTY: <input name=\"qty_".rawurldecode($item->LINE)."\" value=\"" . $_SESSION['box_']['qty_'.rawurldecode($item->LINE)] . "\" type=\"number\" onchange=\"orderValues(this.value)\"/></div>"; 
?> 

ajaxConnect : 값이 변경 될 때마다

<?php 
    session_start(); 
    $_SESSION['box_']['value'] = $_POST["value"]; 
?> 

최종 목표 입력 값 인은 $_SESSION['box_']['qty_LINE']에 저장한다.

$_SESSION 값을 수동으로 설정하면 표시 할 수는 있지만 아약스는 사용할 수 없습니다.

도움을 청합니다.

+0

이,'#의'를 사용을이 jQuery 코드를

<php echo "<div id=\"prodBox\">QTY: <input name=\"qty_".rawurldecode($item->LINE)."\" value=\"" . $_SESSION['box_']['qty_'.rawurldecode($item->LINE)] . "\" type=\"number\" /></div>"; ?> 

그리고 사용

는 그래서 onchange 속성을 제거 id 매핑과 php에서 배열 인덱스를 똑바로 가져옵니다. – geomagas

+0

다른 사이트 페이지 또는 일단 페이지를 다시로드하면 세션 값에 액세스 할 수 있습니다. –

답변

2

onchange과 같은 속성을 사용하는 대신 jquery를 사용하여 이벤트 바인딩을 수행하는 것이 더 좋으며 서버에 보낼 올바른 값을 가져야합니다. 줄 이름과 행이 모두 필요합니다. 값. 업데이트, 마지막으로 당신의 ajaxConnect 파일

$(document).ready(function(){ 
    $('#prodBox input').change(function(){ 
     $.post("/ajaxConnect.php",{line: this.name, value: this.value}, 
     function(result) { 
      console.log('value saved'); 
     }); 
    }); 
}); 

:

JQuery와에
<?php 
    session_start(); 
    $line = isset($_POST["line"]) ? $_POST["line"] : ''; 
    $value = isset($_POST["value"]) ? $_POST["value"] : ''; 
    $_SESSION['box_'][$line] = $value; 
?> 
+0

jQuery 심판을 넣었을 때 당신의 대답은 완벽하게 작동했습니다. – JDC