Я пытаюсь использовать клон javaScript и несколько раз удалять функции на странице, но я хотел бы сделать это с помощью одного скрипта. У меня около 20 выпадающих списков, которые должны быть клонированы/удалены из функции на странице настройки, эти выпадающие списки динамически создаются с PHP и MySQL.Несколько клоун-drop javascript
Выпадающие списки и кнопки, похоже, имеют правильные имена и увеличивающиеся номера на концах линии. Однако я не уверен, как передать эти имена в файл javaScript ниже. Я был бы признателен за любую помощь, дайте мне знать, если вам нужно что-нибудь еще.
индекс:
$add_button = '#btnAdd[]';
$delete_button = '#btnDel[]';
$cloned_input = '.clonedInput[]';
cloneMultiple.php
<script type='text/javascript'>//<![CDATA[
$(document).ready(function() {
var inputs = 1;
$('<?php echo $add_button; ?>').click(function() {
$('<?php echo $delete_button; ?>:disabled').removeAttr('disabled');
var c = $('<?php echo $cloned_input; ?>:first').clone(true);
$('<?php echo $cloned_input; ?>:last').after(c);
});
$('<?php echo $delete_button; ?>').click(function() {
if (confirm('continue delete?')) {
--inputs;
$(this).closest('<?php echo $cloned_input; ?>').remove();
$('<?php echo $delete_button; ?>').attr('disabled',($('<?php echo $cloned_input; ?>').length < 2));
}
});
});
//]]>
</script>
Вот пример вывода HTML в соответствии с просьбой
<div style="float:left; width:33%;"><hr/>
<input type="button" id="btnAdd2" class="add" style="width:180px;" value="Add Air Hammer" />
<div class="clonedInput2" id="clonedInputed2">Air Hammer
<label class="input input-right-small">
<input type="button" class="btnDel delete" id="btnDel2" value="X" disabled="disabled" />
<select id="AirHammer2" name="AirHammer2" style="width:160px;">
<option value="none" selected style="color:gray">None</option>
</select>
</label>
</div>
</div>
<div style="float:left; width:33%;"><hr/>
<input type="button" id="btnAdd3" class="add" style="width:180px;" value="Add Boiler" />
<div class="clonedInput3" id="clonedInputed3">Boiler
<label class="input input-right-small">
<input type="button" class="btnDel delete" id="btnDel3" value="X" disabled="disabled"/>
<select id="Boiler3" name="Boiler3" style="width:160px;">
<option value="none" selected style="color:gray">None</option>
</select>
</label>
</div>
</div>
PHP
<?php
$getEquipment = "SELECT * FROM rbs_equipment_type WHERE name != 'Truck'";
$q_Equipment = $conn->prepare($getEquipment);
$q_Equipment->execute();
while($rowEquipment = $q_Equipment->fetch())
{
echo'
<div style="float:left; width:33%;"><hr/>
<input type="button" id="btnAdd'.$rowEquipment['id'].'" class="add" style="width:180px;" value="Add '.$rowEquipment['name'].'" />
<div class="clonedInput'.$rowEquipment['id'].'" id="clonedInputed'.$rowEquipment['id'].'">'.$rowEquipment['name'].'
<label class="input input-right-small">
<input type="button" class="btnDel delete" id="btnDel'.$rowEquipment['id'].'" value="X" disabled="disabled" style="width:20px; margin:0px;padding-left:1px;padding-right:1px;padding-top:7px;padding-bottom:7px;"/>
<select id="'.$rowEquipment['name'].''.$rowEquipment['id'].'" name="'.$rowEquipment['name'].''.$rowEquipment['id'].'" style="width:160px;">
<option value="none" selected style="color:gray">None</option>';
/*Find Children*/
$getChildren = "SELECT * FROM rbs_equipment_model WHERE model_type_id = ".$rowEquipment['id'];
$qChildren = $conn->prepare($getChildren);
$qChildren -> execute();
while($rowChildren = $qChildren -> fetch())
{
echo "<option value='".$rowChildren['model_id']."'>".$rowChildren['model_name']."</option>";
}
echo '</select>
</label>
</div>
</div>';
}
?>
HTML был полезен, потому что вы выбрали красную селедку с помощью '$ add_button = '#btnAdd []';'. Я предполагаю, что это в цикле с использованием другого кода, потому что вы не можете получить 'btnAdd3' из установки' $ add_button = '#btnAdd []'; '- он выводит' #btnAdd [] '. Можете ли вы скопировать код с вашего PHP, который точно показывает, как вы устанавливаете эти переменные. Является ли javascript внутри цикла? – Popnoodles
Извините PopNoodles Я только собирался начать все сначала, это выглядело довольно неприятно. Но если вы поняли, что тоже будет здорово – Owen
Это займет несколько минут, чтобы записать .. – Popnoodles