Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > как получить аттрибут загруженной страницы ajax


Автор: lemniscate 10.8.2010, 09:07
Добрый день! Извиняюсь если некорректно дал название темы. Начал осваивать jquery и вот такой может быть глупый вопрос. 

есть первая страница которая имеет вот такой код 

index.php
Код

$(document).ready(function(){
   $("select").change(function(event){
              var inst = $("select#inst").attr("value");
              var spec = $("select#spec").attr("value");
              var ys = $("select#ys").attr("value");
              var fo = $("select#fo").attr("value");
              if(inst){$("select#spec").removeAttr("disabled");}
              $("#list").empty();
              $.ajax({
                url: "query.php",
                type: "POST",
                data: "inst=" + inst + "&spec=" + spec + "&ys=" + ys + "&fo=" + fo,
                cache: false,
                success: function(data){
                $("#list").append(data);
                }
                });
        });
})

Код
<div id=list></div>


query.php
Код

while($row = $db->fetch_array())
{
echo '<tr><td><a  value="'.$row['1'].'">'.$row['2'].' '.$row['3'].' '.$row['4'].'</a></td><td><input type=text class=list></td><td><input type=text class=list2></td></tr>';
}



Все работает, все отлично, но вот вопрос. в файле query.php формируется таблица с input. как можно получить аттрибут этих input. для того чтобы на "родительской" странице index.php произвести вычисления со значениями которые будут введены в input "дочерней" таблицы query.php.

Если я пишу в файле query.php скрипт то работает, но мне надо чтобы этот скрипт был в файле index.php. 

Заранее спасибо! 

Автор: ksnk 10.8.2010, 09:30
query.php вставляет дополнительные элементы в форму? тогда нужно бы еще и атрибуты name добавлять.
А пока, какбы, и несложно
Код

$('#list input:text')  

даст нам все вставленные когда либо в #list инпуты.

Кстати вместо такого
Код

$("select#inst").attr("value");

Нужно бы писать вот такое
Код

$("select#inst").val();
// или даже такое
$("#inst").val();
// если ID не пересекаются на страничке, как это и должно быть...

Автор: lemniscate 10.8.2010, 09:49
огромное спасибо за совет. но все равно не получается,  надо что бы при клике на <a  value="'.$row['1'].'">'.$row['2'].' '.$row['3'].' '.$row['4'].'</a> получать значение value. причем сам скрипт должен располагаться в файле index.php. все перепробовал ничего не выходит. :(

Добавлено через 3 минуты и 45 секунд
в index.php пишу вот так 

Код

$(document).ready(function(){
  $("#list a.abcard").click(function(event){
      var abid = $(this).attr("value");
      alert(abid);
      });

});


может что то не правильно. вот этот елемент a.abcard находиться в файле query.php и загружается в index.php

Автор: нуп 10.8.2010, 10:06
Мне кажется Вы путаете пхп и джс  smile 

Автор: ksnk 10.8.2010, 11:46
для начала - #list a.abcard еще не существует, когда вызывается установщик клика на него, так что сам установщик нужно выставить в ajax или использовать live метод
Код

$(document).ready(function(){
  $("#list a.abcard").live('click',function(event){
...

в этом самом клике можно воспользоваться тем, что нужные нам input'ы - 2 следующих за ссылкой.
Код

$(document).ready(function(){
  $("#list a.abcard").live('click',function(event){
      var v=$(this).siblings('input').slice(2);
      alert([v.eq(0).val(),v.eq(1).val()]);
  })
//...
})


что-то вроде этого...

Автор: lemniscate 10.8.2010, 13:01
УРААА! Спасибо огромное, заработало  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)