Вы перестаете просматривать свои заказы по команде @endforeach
. По истечении этого времени вы не будете повторять цикл, поэтому $order->id
фиксируется на значении, которое было при последнем выполнении цикла. Каждый раз, когда вы используете его после этого, он будет иметь значение последнего идентификатора.
Следовательно, если у вас есть 10 заказов, ваш обратный вызов eventClick будет выглядеть так:
eventClick: function(event) {
$("#successModal10").modal("show");
$('#order_id').val(calEvent._id);
$("#successModal .modal-body p").text(event.title);
}
10
- это фиксированное значение в вашем JavaScript, потому что вывод PHP $order->id
вставляется в вывод, который затем отправляется в браузер. Таким же образом, модальный HTML будет иметь фиксированные данные идентификатора заказа для этого заказа при создании страницы. Это можно увидеть, если вы используете функцию просмотра исходного кода вашего браузера для просмотра окончательного HTML и JavaScript, которые были отправлены ему сервером.
Помните, что PHP выполняется на сервере до страница загружается в браузер, и JavaScript выполняется только позже, когда страница готова. Поэтому любое значение, сгенерированное PHP, жестко запрограммировано на странице, пока вы снова не перезагрузите эту страницу с сервера. эта статья может оказаться полезной для справочного чтения.
Короче говоря, вы не предоставляете какой-либо механизм обновления данных в модале данными заказа из элемента, которыйпользователь нажал на;вместо этого вы заранее зафиксировали значение.
Очень распространенный способ правильно реализовать эту функцию - обработать eventClick, как вы делаете сейчас, взять идентификатор ордера, по которому щелкнули, и использовать его для отправкиAJAX-запрос к серверу, чтобы получить детали конкретного заказа. Затем сервер вернет данные заказа (чаще всего в формате JSON), и вы можете использовать JavaScript для сбора ответа, содержащего данные заказа, и поместить эту информацию в правильное место в HTML-коде модального вида, прежде чем показывать его. пользователю.