0

我试图将文本框(id = msg)的值传递给js,但输出始终是foreach循环上的第一个文本框值。请帮帮我。一直在网上搜索2小时。这是代码。PHP to JS - 将循环元素的值传递给JS

JS:

function sub() { 
    var name = document.getElementById('msg').value; 
    alert(name); 
} 

HTML:

<?php 
foreach($messages->result() as $msg): 
    foreach($agentname->result() as $agnt): 
     if($msg->message_status == 1): 
      $message_status = "<font class='icon-exclamation-sign'></font>&nbsp;<font class='purple'>New message!</font>"; 
     else: 
      $message_status = ""; 
     endif; 
?> 
     <div class="accordion-wrapper" style="margin-top:0"> 
      <a id="message" onclick="return sub();" rel="msg<?php echo $msg->message_id;?>" id = "button_id" style="background-color:#C2E4CD" href="javascript:void(0)" class="accordion-title blue"><span><?php echo $message_status; ?>&nbsp;<font class="icon-comment"></font>&nbsp;<font class="orange" >From:</font> <?php echo $agnt->agent_shortname;?> | <font class="icon-envelope-alt"></font>&nbsp;<font class="orange">Subject:</font> <?php echo $msg->message_title;?></span></a> 

      <div class="accordion-content"> 
       <input type="text" id="msg" value="<?php echo $msg->message_id;?>" /> 
       <p><?php echo $msg->message;?></p> 
      </div> 
     </div> 
    <?php endforeach; ?> 
<?php endforeach; ?> 
+0

你有php循环内的html元素的id属性。所有元素都有相同的id,这会导致错误。 * id =“msg”* – ddinchev

+0

如上所述,具有相同id的多个元素会给您带来麻烦。你可以用这个jQuery吗?如果是这样,我为你解决问题。 –

回答

1

你把外环的价值在文本框中。

据我所知,你应该把内部循环的值放在文本框中。

<input type="text" id="msg" value="<?php echo $msg->message_id;?>" />

您是不是要找$agnt而不是$msg

+0

@ user2833599,我的答案是否适合你? – Pupil

0

我已经加入name属性您input和一个按钮上点击它会一个接一个显示的输入值,所以现在你可以试试这个代码

JS:

function check() { 

    var inputs = document.getElementsByName('messages[]'); 
    alert(inputs.length); 
    for (var x = 0; x < inputs.length; x++) { 
     inp_val = inputs[x].value; 
     alert(inp_val); 
    } 

} 

HTML:

<?php 
    foreach($messages->result() as $msg): 
    foreach($agentname->result() as $agnt): 
    if($msg->message_status == 1): 
     $message_status = "<font class='icon-exclamation-sign'></font>&nbsp;<font class='purple'>New message!</font>"; 
    else: 
     $message_status = ""; 
    endif; 
    ?> 

    <div class="accordion-wrapper" style="margin-top:0"> 
    <a id="message" onclick="return sub();" rel="msg<?php echo $msg->message_id;?>" id = "button_id" style="background-color:#C2E4CD" href="javascript:void(0)" class="accordion-title blue"><span><?php echo $message_status; ?>&nbsp;<font class="icon-comment"></font>&nbsp;<font class="orange" >From:</font> <?php echo $agnt->agent_shortname;?> | <font class="icon-envelope-alt"></font>&nbsp;<font class="orange">Subject:</font> <?php echo $msg->message_title;?></span></a> 
    <div class="accordion-content"> 
     <input type="text" id="msg" name="messages[]" value="<?php echo $msg->message_id;?>" /> 
     <p><?php echo $msg->message;?></p> 
    </div> 
    </div> 
    <?php endforeach; ?> 
    <?php endforeach; ?> 

    <input type="button" value="check" onclick="check()">