如何在foreach中获得唯一的表单ID

时间:2011-06-01 12:05:00

标签: php javascript html

这是我的代码:

<?php foreach ($users as $user)
{
   //some php code here to define variables
   <a href="<?php echo ADDRESS; ?>messageSent.php?id=<?php echo $id_to; ?>" class="charcoal_link" style="line-height: 20px;" onclick="showMessageArea(this); return false;" >
      <?php echo $uniqueCode1;?><span class="pink_text"><?php echo $uniqueCode2;?></span><?php echo $uniqueCode3;?>
   </a>      
   <form id="message_area_<?php echo $id_to; ?>" style="display:none"  method="post" action="<?php echo ADDRESS; ?>messageSent.php?id=<?php echo $id_to; ?>"> 
       <textarea name="message" rows="10" cols="20"></textarea>
       <input name="Submit" type="submit" value="Send"></input>
       <input type='hidden' name='mid' id='message_id' value=""></input>
   </form>
 <?php
  }
 ?>

然后我有:

<script type="text/JavaScript">
function showMessageArea(link)
{
  document.getElementById('message_id').value = this.id;
  var message_area = document.getElementById('message_area_'+this.id);
  message_area.parentNode.removeChild(message_area);
  link.parentNode.insertBefore(message_area, link.nextSibling);
  message_area.style.display="block";
}

我的pagesource显示了这一点:请注意,表单ID是唯一的

<a href="http://www-rainbowcode-mobi/messageSent.php?id=36" class="charcoal_link" style="line-height: 20px;" onclick="showMessageArea(this); return false;" > 
    KUZELJA<span class="pink_text">000</span>RC
</a>      
<form id="message_area_36" style="display:none"  method="post" action="http://www-rainbowcode-mobi/messageSent.php?id=36"> 
   <textarea name="message" rows="10" cols="20"></textarea> 
   <input name="Submit" type="submit" value="Send"></input> 
   <input type='hidden' name='mid' id='message_id' value=""></input> 
</form> 
<a href="http://www-rainbowcode-mobi/messageSent.php?id=38" class="charcoal_link" style="line-height: 20px;" onclick="showMessageArea(this); return false;" > 
   ALANZIM<span class="pink_text">000</span>RC 
</a>      
<form id="message_area_38" style="display:none"  method="post" action="http://www-rainbowcode-mobi/messageSent.php?id=38"> 
   <textarea name="message" rows="10" cols="20"></textarea> 
   <input name="Submit" type="submit" value="Send"></input> 
   <input type='hidden' name='mid' id='message_id' value=""></input> 
</form> 

现在的问题是:在我的JS中这个.id是未定义的?????这不显示我的textarea和sumbit按钮 怎么能得到var message_area = document.getElementById('message_area _'+ this.id)unique ??? 我也尝试split.link(“=”)[1]获取id并将其与message_area_连接 但它不起作用 link也是唯一的,http://www-rainbowcode-mobi/messageSent.php?id=36其中id将是我点击的唯一代码链接的ID

请问我需要帮助吗? 谢谢

2 个答案:

答案 0 :(得分:0)

尝试在php代码中更改此内容:

onclick="showMessageArea('<?php echo $id_to; ?>'); return false;"

然后您可以通过以下方式获取消息区域:

var message_area = document.getElementById('message_area_'+link);

答案 1 :(得分:0)

有两种选择:

1)将id="<?php echo $to_id; ?>"添加到您的<a>代码,或

2)最好将id作为javascript函数参数传递:

<a ... onclick="showMessageArea(this, '<?php echo $to_id; ?>'); return false;">

然后你的javascript函数应该是这样的

function showMessageArea(link, id)
{
    document.getElementById('message_id').value = id;
    var message_area = document.getElementById('message_area_'+id);
    ....
}