1

I have a drop-down menu in a form with elements retrieved from a database. Something like this :

for($i=0;$i<count($resq);$i++){
    print("<li><a class=\"dropdown-item\" href=\"#\" id=\"$i\">{$resq[$i][0]}</a></li>");
}

$resq being an array containing the result of the query (i used mysqli_fetch_all).

As you can see I tried to dynamically generate the id of the items(first item has id=0, second has id=1 and so on till the final value of $i) but I think this is not correct.

Previously, I had the following JS code(which worked) which I used to set the drop-down value to the one selected by the user and to set the value of a hidden input to that value.(I know the code isn't elegant but I just wanted to test the logic in the first place)

var x=document.getElementById('dropdownMenuButton1slct');//dropdown

var c1=document.getElementById("0");//i - categories(IDs of the dropdown elements)
var c2=document.getElementById('1');
var c3=document.getElementById('2');
var c4=document.getElementById('3');
var c5=document.getElementById('4');

var p=document.getElementById('iaval');//hidden input from form

function clic(z){
    z.onclick=function () {
        x.innerHTML=z.innerHTML;
        p.value=x.innerHTML;

    };
}
clic(c1);
clic(c2);
clic(c3);
clic(c4);
clic(c5);

But now the same method won't work. If you can, please suggest me a different way or something, I am kinda stuck. I can provide more info if this seems vague or something like that. Thanks.

cursorrux
  • 1,382
  • 4
  • 9
  • 20
9HOSTNAME
  • 11
  • 2
  • 2
    Why not just give them all a single class and then apply `onclick` to the class? – Dharman Oct 01 '21 at 10:05
  • Put a single `onclick` on the `
      ` and work from there. [This answer](https://stackoverflow.com/a/42111989/1685196) is pretty usefull.
    – Michel Oct 01 '21 at 11:23

0 Answers0