Передача идентификатора переменной формы из PHP в JavaScript - PullRequest
1 голос
/ 24 июля 2011

Я пытаюсь передать динамически созданный идентификатор из формы в 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>

оповещение (тест) показывает: 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 все работает нормально, если я использую фиксированный идентификатор.Но не могу заставить его работать с динамически созданным идентификатором.

РЕДАКТИРОВАТЬ 4: ОК, есть много ответов, но ни один из них, кажется, не работает.Я постараюсь упростить.

Я вернусь к этому примеру, с которого я начал (http://www.9lessons.info/2009/05/insert-and-load-record-using-jquery-and.html).

Мой веб-сайт похож на Facebook. У вас есть друзья, и на странице "стены" выУ меня много разных окон для комментариев (для каждого из ваших друзей). Чтобы идентификаторы этих окон для комментариев отличались друг от друга (чтобы не публиковать что-либо для всех ваших друзей), мне пришлось использовать идентификаторы друзей из базы данных (input type="text" class="tb" name="<?php echo $div_id; ?>" id="<?php echo $div_id; ?>" value="").работает нормально.

Я могу получить этот идентификатор в JavaScript (var fld = "input[name=<?=$div_id;?>]";), но не могу прочитать значение этого текстового поля. Как только я это сделаю, я позабочусь о том, чтобы вставить его вмоя база данных ...

Ответы [ 3 ]

1 голос
/ 24 июля 2011

попробуй

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

или лучше

var fld = "#<?=$div_id;?>";
1 голос
/ 24 июля 2011

вы можете использовать $ (this) в обработчике событий щелчка.

т.е.

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

вернет идентификатор .elementClass, по которому щелкнули.

1 голос
/ 24 июля 2011
var test = $("#"+fld).val();
alert(test);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...