【问题标题】:PHP to JS - Passing value of looped element to JSPHP to JS - 将循环元素的值传递给 JS
【发布时间】:2013-10-07 05:24:50
【问题描述】:

我正在尝试将文本框的值 (id = msg) 传递给 js,但输出始终是 foreach 循环上的第一个文本框值。请帮我。这是代码。

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; ?>

【问题讨论】:

  • 你在 php 循环中有 html 元素的 id 属性。所有元素都将具有相同的 id,这会导致错误。 id="msg"
  • 如前所述,具有相同 id 的多个元素会给您带来麻烦。你可以为此使用jQuery吗?如果是这样,我有一个解决方案。

标签: javascript php jquery variable-assignment


【解决方案1】:

您将外部循环的值放入文本框中。

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

&lt;input type="text" id="msg" value="&lt;?php echo $msg-&gt;message_id;?&gt;" /&gt;

您是说$agnt 而不是$msg

【讨论】:

    【解决方案2】:

    我已将 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()">
    

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 2017-07-29
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      相关资源
      最近更新 更多