Reputation: 19
I'm trying to get a while loop to display data in <span>
field with the a id, each time it loops. But it only display the data on the first loop. What I'm I doing Wrong?
<? php
$i = 0;
while($i < 5){
$i++;
echo "<input type = 'hidden' id = 'minute' value = ''>
<input type = 'hidden' id = 'second' value = ''>
<br><br>
<span id = 'selectmin' value = '0'></span>:<span id = 'selectsec' value =
'0'></span>
<br><br>";
echo "<script>document.getElementById('selectmin').innerHTML = 'Hello ';
</script>";
?>
Upvotes: 1
Views: 77
Reputation: 11342
id='selectmin'
you are creating 5 identical HTML block with the same id? ID are unique and only gonna select the first match that's why it only show once.
Use 'selectmin$i'
so it create a unique id for each loop:
<?php
$i = 0;
while($i < 5){
$i++;
echo "<input type = 'hidden' id = 'minute$i' value = ''>
<input type = 'hidden' id = 'second' value = ''>
<br><br>
<span id = 'selectmin$i' value = '0'></span>:<span id = 'selectsec$i' value = '0'></span>
<br><br>";
echo "<script>document.getElementById('selectmin$i').innerHTML = 'Hello '; </script>";
}
?>
Also close your while loop with }
and use <?php
or <?
to start your php code.
The output HTML is:
<input type='hidden' id='minute1' value=''>
<input type='hidden' id='second' value=''>
<br>
<br>
<span id='selectmin1' value='0'></span>:<span id='selectsec1' value='0'></span>
<br>
<br>
<script>
document.getElementById('selectmin1').innerHTML = 'Hello ';
</script>
<input type='hidden' id='minute2' value=''>
<input type='hidden' id='second' value=''>
<br>
<br>
<span id='selectmin2' value='0'></span>:<span id='selectsec2' value='0'></span>
<br>
<br>
<script>
document.getElementById('selectmin2').innerHTML = 'Hello ';
</script>
<input type='hidden' id='minute3' value=''>
<input type='hidden' id='second' value=''>
<br>
<br>
<span id='selectmin3' value='0'></span>:<span id='selectsec3' value='0'></span>
<br>
<br>
<script>
document.getElementById('selectmin3').innerHTML = 'Hello ';
</script>
<input type='hidden' id='minute4' value=''>
<input type='hidden' id='second' value=''>
<br>
<br>
<span id='selectmin4' value='0'></span>:<span id='selectsec4' value='0'></span>
<br>
<br>
<script>
document.getElementById('selectmin4').innerHTML = 'Hello ';
</script>
<input type='hidden' id='minute5' value=''>
<input type='hidden' id='second' value=''>
<br>
<br>
<span id='selectmin5' value='0'></span>:<span id='selectsec5' value='0'></span>
<br>
<br>
<script>
document.getElementById('selectmin5').innerHTML = 'Hello ';
</script>
Upvotes: 0
Reputation: 333
Either use short tags like <?
or just use qualified PHP tags to avoid such mistakes. There is no space between <?
and php
.
Upvotes: 2