Так что прошло довольно много времени с тех пор, как я сделал PHP, и я пытаюсь работать над формой javascript / php. Вся моя цель состоит в том, чтобы, когда я щелкаю элемент слева, он добавляет новое текстовое поле справа. Значение отправляется в правую сторону.
Проблема в том, что сейчас он отправляет одно и то же значение независимо от того, какую кнопку я нажимаю.
// Create Items
$itemRow = $itemRow."<div align=\"left\" id=\"$category[NAME]\" class=\"tabcontent\">";
$query2 = "SELECT * FROM items where CATEGORY='$category[NAME]' order by ITEM_NAME ASC";
$result2 = (mysqli_query($connect, $query2));
while ($item = mysqli_fetch_array($result2)) {
$closeRow = $closeRow . "
<button class=\"orderMenu\" id=\"$item[ID]\" value=\"$item[ID]\">$item[ID] - $item[ITEM_NAME]</button>";
?>
<script>
document.onclick = function () {
//first div
var newDivCol = document.createElement("div");
newDivCol.setAttribute("class","col-md-4");
//second div
var newDivForm = document.createElement("div");
newDivForm.setAttribute("class","form-group label-floating");
newDivCol.appendChild(newDivForm);
//label
var newlabel = document.createElement("label");
newlabel.setAttribute("class","control-label");
newlabel.innerHTML = <?php echo $item[ID] ?>;
newDivForm.appendChild(newlabel);
//input
var newInput = document.createElement("input");
newInput.setAttribute("type","text");
newInput.setAttribute("class","form-control");
newInput.setAttribute("v-model","act");
newDivForm.appendChild(newInput);
var element = document.getElementById("addRowsHere");
element.appendChild(newDivCol);
};
</script>
<?php
}
$itemRow = $itemRow.$closeRow."</div>";
$closeRow = "";
} // End Cat/Item Selection
print "</div>";
print $itemRow;
?>
</div>
<div class = "divTableCell" style = "width: 50%;">
<div class = "row" id = "addRowsHere">
</div>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Кажется, ваши проблемы не связаны с php-частями скрипта. Скорее вы должны использовать первый аргумент вашей функции document.onclick (объект события), определив функцию как-то так:
document.onclick=function(ev){ // ev is an object containing information about the click event
var clickedDOMElement = ev.target;
// .. build the new element based on data from clickedDOMElement
}
С точки зрения дополнительных интерактивных элементов на странице было бы лучше нет привязать обработчик события щелчка к весь документ, а не к div #categoryName. Ниже вы найдете небольшую демонстрацию с аналогичными данными, созданными вашим PHP - я надеюсь. Здесь вы можете увидеть, как создать обработчик события щелчка, чтобы он обнаруживал элемент, на который был выполнен щелчок, и действовал на него:
var rowsTarget=document.getElementById('addRowsHere');
document.getElementById('categoryName').onclick=function(ev){
var clicked = ev.target;
let d=document.createElement("div");d.setAttribute("class","col-md-4");
d.innerHTML='<div class = "form-group label-floating">'
+'<label class = "control-label">'+clicked.textContent
+'<input type = "text" class = "form-control" v-model = "act" value = "'
+clicked.value+'"></label></div>';
rowsTarget.appendChild(d);
}.tabcontent {width: 50%}<div align = "left" id = "categoryName" class = "tabcontent">
<button class = "orderMenu" id = "i1" value = "1">1 - first item</button>
<button class = "orderMenu" id = "i2" value = "2">2 - second item</button>
<button class = "orderMenu" id = "i3" value = "3">3 - third item</button>
<button class = "orderMenu" id = "i4" value = "4">4 - fourth item</button>
<button class = "orderMenu" id = "i5" value = "5">5 - fifth item</button>
<button class = "orderMenu" id = "i6" value = "6">6 - sixth item</button>
<button class = "orderMenu" id = "i7" value = "7">7 - seventh item</button>
<button class = "orderMenu" id = "i8" value = "8">8 - eighth item</button>
<button class = "orderMenu" id = "i9" value = "9">9 - ninth item</button>
<button class = "orderMenu" id = "i10" value = "10">10 - tenth item</button>
</div>
<p>Rows will appear here:</p>
<div class = "row" id = "addRowsHere">