Так что я хочу добавить элементы, которые будут иметь динамический компонент для них при нажатии. Моя проблема в том, что элемент, о котором я говорю, это php-код. Мой код, как видно ниже, не работает, и я понятия не имею, как его исправить. Если у меня просто есть элемент html для добавления, он будет работать, но он этого не делает. Я не очень хорошо разбираюсь в jQuery и поэтому нуждаюсь в помощи.Как добавить динамически увеличивающиеся элементы с помощью jQuery?
Это мой код:
<div id="main" style="text-align: center;">
<input type="button" id="btAdd" value="Add Element" class="bt" />
<input type="button" id="btRemove" value="Remove Element" class="bt" />
<input type="button" id="btRemoveAll" value="Remove All" class="bt" /><br />
</div>
И это мой JQuery:
var iCnt = 0;
var container = $('.equip-ops');
$('#btAdd').click(function() {
if (iCnt <= 19) {
iCnt = iCnt + 1;
// ADD ITEM.
$(container).append('<label>Selecteaza Operatiune<select name="eq_1_op_' + iCnt + '"><?php foreach ($operations_' + iCnt + '->fetchAll() as $operation) : ?><option value="<?php echo $operation['oname']; ?>"><?php echo $operation['oname']; ?></option><?php endforeach; ?></select></label>
');
// SHOW SUBMIT BUTTON IF ATLEAST "1" ELEMENT HAS BEEN CREATED.
if (iCnt == 1) {
var divSubmit = $(document.createElement('div'));
$(divSubmit).append('<input type=button class="bt" onclick="GetTextValue()"' + 'id=btSubmit value=Submit />');
}
// ADD BOTH THE DIV ELEMENTS TO THE "main" CONTAINER.
$('#main').after(container, divSubmit);
}
// AFTER REACHING THE SPECIFIED LIMIT, DISABLE THE "ADD" BUTTON.
// (20 IS THE LIMIT WE HAVE SET)
else {
$(container).append('<label>Reached the limit</label>');
$('#btAdd').attr('class', 'bt-disable');
$('#btAdd').attr('disabled', 'disabled');
}
});
$('#btRemove').click(function() { // REMOVE ELEMENTS ONE PER CLICK.
if (iCnt != 0) { $('#tb' + iCnt).remove(); iCnt = iCnt - 1; }
if (iCnt == 0) { $(container).empty();
$(container).remove();
$('#btSubmit').remove();
$('#btAdd').removeAttr('disabled');
$('#btAdd').attr('class', 'bt')
}
});
$('#btRemoveAll').click(function() { // REMOVE ALL THE ELEMENTS IN THE CONTAINER.
$(container).empty();
$(container).remove();
$('#btSubmit').remove(); iCnt = 0;
$('#btAdd').removeAttr('disabled');
$('#btAdd').attr('class', 'bt');
});
});
Узнайте, как работает PHP и JS/JQuery, это, не правда ли. PHP всегда будет загружаться и выполняться до загрузки JS/jQuery, вы должны изучить AJAX. – Epodax
Да, я могу дать вам несколько советов. Если ваш код jQuery выглядит настолько большим, вы уже можете знать, что что-то не так. Также в JS вы не можете разбить строку. Итак ** строка 12 ** вы уже вызываете критическую ошибку, и скрипт завершается. Загрузите BugZilla или используйте встроенную консоль, чтобы увидеть, что происходит на самом деле. Также Google, что 'console.log (« Я - сообщение »),' делает. –
@Epodax Я так и не подумал об этом. Так что я должен попробовать ajax, вы говорите. Хорошо, я сделаю это. – Kaladan