将变量表单id从php传递给javascript

时间:2011-07-24 10:46:58

标签: php javascript forms

我正在尝试将动态创建的id从表单传递给JavaScript。

<script type="text/javascript">
$(function() {
  $(".button-call").click(function() {
    var fld = "<?= $div_id;?>";
    var test = $(fld).val();
        alert(test);
...

<form method="post" action="" enctype="multipart/form-data">
<input type="text" class="tb" name="<?php echo $div_id; ?>" id="<?php echo $div_id; ?>" value="" maxlength="80" />
<input type="submit" value="Send" class="button-call" name="p_k2" id="p_k2" />
</form>

alert(test)显示:undefined。

当我将其更改为警报(fld)时,我收到两个警报,首先显示一个空框,然后是正确的$ div_id

我做错了什么?

编辑1:我正在尝试显示输入中的文字......

编辑2:这是完整的JavaScript:

<script type="text/javascript">
$(function() {
  $(".button-call").click(function() {
    //var fld = "<?= $div_id;?>";
    var fld = "input[name=<?=$div_id;?>]";
    //var fld = "#<?=$div_id;?>";
    var test = $(fld).val();
    var dataString = 'content='+ test;

    alert(fld);
    alert(test);

    if(test=='')
    {
        alert("Write some text ...");
    }
    else
    {
        $("#flash").show();
        $("#flash").fadeIn(1000).html('<img src="images/ajax-loader.gif" align="absmiddle"> <span class="loading"> Loading ...</span>');

      $.ajax({
      type: "POST",
      url: "p_k2.php",
      data: dataString,
      cache: false,
      success: function(html){
      $("#divToRefresh").after(html);
      document.getElementById(fld).value='';
      document.getElementById(fld).focus();
      $("#flash").fadeOut(1000);
      }
      });
    }
    return false;
  });
});
</script>

编辑3:这是我正在使用的示例:http://www.9lessons.info/2009/05/insert-and-load-record-using-jquery-and.html 如果我使用固定ID,一切正常。但无法使用动态创建的id。

编辑4: 好的,有很多答案,但它们似乎没有用。我会尽力简化。

我将回到这个例子,我开始的那个例子(http://www.9lessons.info/2009/05/insert-and-load-record-using-jquery-and.html)。

我的网站与Facebook类似。你有朋友,在你的“墙上”页面上你有很多不同的评论框(对于你的每个朋友)。 为了使这些评论框的ID彼此不同(为了避免向所有朋友发布内容),我必须使用数据库中的朋友ID(input type="text" class="tb" name="<?php echo $div_id; ?>" id="<?php echo $div_id; ?>" value="")。那部分工作正常。

我可以将该ID转换为JavaScript(var fld = "input[name=<?=$div_id;?>]";)但是,我无法读取该文本字段的值。一旦我这样做,我将负责将其插入我的数据库...

3 个答案:

答案 0 :(得分:1)

var test = $("#"+fld).val();
alert(test);

答案 1 :(得分:1)

var fld = "input[name=<?=$div_id;?>]";

或更好

var fld = "#<?=$div_id;?>";

答案 2 :(得分:1)

你可以在点击事件处理程序中使用$(this)。

$(".elementClass").click(function(){
    alert($(this).attr("id"));
});

将返回被点击的.elementClass的id。