Сохранение переменных формы при смене ajax

Я пытаюсь сохранить данные формы в переменные $_SESSION с помощью ajax, но я не могу нормально запустить событие onchange или отправить переменную.

Длина формы варьируется, поэтому я попытался использовать динамические переменные.

 <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 значение $_SESSION вручную, я могу его показать, но не через ajax.

Приветствия за любую помощь.

Лучше использовать jquery для привязки событий вместо использования таких атрибутов, как onchange , и вам также необходимо убедиться, что вы получаете правильные значения для отправки на ваш сервер, вам нужно как имя строки, так и значение.

Поэтому удалите атрибут onchange :

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

И используйте этот код jquery:

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

Наконец, обновите файл ajaxConnect :

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