将标签ID从php传递给javascript

时间:2013-05-02 00:11:42

标签: php javascript jquery variables parameters

枝: 我已经设法使用php中的foreach语句显示多个Div(div显示数据库中的不同行),并且每个Div都在底部有一个表单,其按钮唤起下面的javascript onclick函数。

 function SubmitForm(msg) {
var cid = $("#cid").val();
var message = $("#"+msg).val();

$.post(
"picturecomments.php", { cid: cid, message: message }, function(data)    
{alert(data);}
);
}

以下是表格

<form  action="picturecomments.php" method="post">
<span >
<input type="hidden" name="cid" id="cid" value="',$result['id'],'"required="required"/> 
 <textarea name="'.$message.'" id="'.$message.'" style="width:85%; height:25px;
 margin:0px;" placeholder="give a comment" required="required"></textarea>
<input type="button" onclick="SubmitForm('.$message.');"
id="searchForm"style="width:5%; height:25px; margin:0px;" value="Send"/>
</span>
</form>

我的问题是当我尝试单击发送按钮时,它总是会侦听第一个div, 所以我注意到问题是因为我只有一个ID用于这些标签,当脚本运行时,它只发送第一个ID ......

如何为多个ID运行该功能? 因为当我有2个div时,该函数只会听第一个表单提交

$ message变量在同一个php代码中,我已经完成了我的研究,但我找不到解决方案

请帮助!!

2 个答案:

答案 0 :(得分:0)

你可以使用每个jquery。假设您有多个具有“post”类

的div
<div class="post">
  <input type="text" class="cid">
  <textarea class="msg"></textarea>
</div>
<div class="post">
  <input type="text" class="cid">
  <textarea class="msg"></textarea>
</div>


$( ".post" ).each(function( index ) {
    $.post( "picturecomments.php", { cid: $(this).find('cid').val(), message: $(this).find('textarea').val() }, function(data) {
       alert(data);
    });
});

所以它基本上会遍历所有具有类post的div。找到class =“cid”/ class =“msg”的输入字段,然后将其发送到您的php处理器。

当然,这是非常基本的,但你会按照自己的方式行事!

http://api.jquery.com/each/

btw:确保你不使用ID。他们应该是独一无二的!

答案 1 :(得分:0)

您根本不需要使用ID,您只需使用每个表单中的名称并将其序列化即可。

我还会删除内联的javascript(和css ...)以及硬编码的$message,因为如果你这样说就永远无法更改原始邮件。

也没有理由在每种表单中为邮件使用不同的name属性。

您还需要阻止默认/普通的html表单提交。

php / html

<form  action="picturecomments.php" method="post">
  <span >
    <input type="hidden" name="cid" value="' . htmlspecialchars($result['id']) . '" required="required"/> 
    <textarea name="message" placeholder="give a comment" required="required"></textarea>
    <input type="button" value="Send"/>
  </span>
</form>

的javascript:

$("form").on("submit", function(e) {
  e.preventDefault();
  $.post(
    "picturecomments.php",
    $(this).serialize(),
    function(data) {
       alert(data);
  });
}