2016-11-24 4 views
0

PHP JQuery DATA-VALUE

$(document).ready(function() { 
 
    $("body").on("click", "a", function(event) { 
 
\t \t \t 
 
    event.preventDefault(); 
 

 
    var classenlace = "." + $(this,"a").prop("class"); 
 
    //var section = $(this).prop("id"); 
 
    var section = this.id; 
 
\t 
 
    $.ajax({ 
 
\t url: $(this).prop("href") \t \t \t \t \t 
 
    })              .done(function(data) { 
 
    \t if (data) { 
 
     if(section == "enlace") { 
 
\t \t var name = $(classenlace).data('name'); 
 
\t \t var lastname = $(classenlace).data('lastname'); 
 
     } 
 
     } 
 
    }); 
 
    }); 
 
});
<?php 
 
    foreach ($conection->query($result3) as $row3) { 
 
    $name = $row3['name']; 
 
    $lastname =row3['lastname']; 
 
?> 
 

 
<a href="ficha.php" id="enlace" class="enlace" 
 
data-name = "<?php echo $name; ?>" 
 
data-lastname = "<?php echo $lastname; ?>"> 
 
    <?php echo "- ".$name." ".$lastname; ?> 
 
</a> 
 

 
<?php 
 
    } 
 
?>

Простить мой английский

Этот код не работает,

Есть 5 имен и фамилий:

  • Джон Смит
  • Juan Garc Анджелес
  • Мишель Ван
  • Боб Dereck Майкл Джексон

Любой из 5 звеньев всегда возвращается: Джон Смит

Почему это происходит?

+0

Вы __overwrite__ значения на каждой итерации 'foreach'. –

+0

У вас нет обратного вызова в '$ .ajax' функции –

+0

Похоже, что вы не скопировали код jQuery должным образом, части вызова' $ .ajax' отсутствуют. – Barmar

ответ

0

Вы должны использовать атр элемент JQuery, то лучше, попробуйте с помощью следующего кода, первый извлечь имя-данные и данные-Lastname значения, а затем отправить их в качестве параметров внутри функции АЯКС рядом с URL

$(document).ready(function() { 
 
    $("body").on("click", "a", function(event) { \t \t \t 
 
    event.preventDefault(); \t 
 
\t if($(this).attr("id").valueOf() == "enlace"){ 
 
\t  var name = $(this).attr("data-name").valueOf(); 
 
     var lastname = $(this).attr("data-lastname").valueOf(); 
 
\t } 
 
\t alert(name + " " + lastname); 
 
    $.ajax({ 
 
\t url: $(this).attr("href").valueOf() 
 
\t 
 
    }).done(function(data) { 
 
    \t 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="ficha.php?" id="enlace" class="enlace" 
 
data-name = "name1" 
 
data-lastname = "lastname1"> 
 
    Name1 
 
</a> 
 
<a href="ficha.php?" id="enlace" class="enlace" 
 
data-name = "name2" 
 
data-lastname = "lastname2"> 
 
    Name2 
 
</a> 
 
<a href="ficha.php?" id="enlace" class="enlace" 
 
data-name = "name3" 
 
data-lastname = "lastname3"> 
 
    Name3 
 
</a>

+0

Спасибо! Это решение. –

+0

Ни в коем случае, это хорошо –

0

Вы должны использовать $ (this) вместо $ (this, "a") в части JavaScript.