Я получил ответ от этого сообщения [ Как отправить или присвоить значение переменной JQuery переменной php? но каким-то образом мой PHP не может получить значение, переданное из JQuery
это html-код
<a href="random.php" id="comp1">comp1</a> <a href="random.php" id="comp2">comp2</a> <a href="random.php" id='comp3'>comp3</a>
Код JQuery
$('a').click(function(){ $.ajax({ type: 'POST', url:'random.php', data: {name:$(this).attr('id') } }).done(function(msg){ alert(msg) }) })
и PHP-код
<?php $id = $_POST['name'] ; echo $id; ?>
Возможно, вы захотите использовать e.preventDefault();
для предотвращения поведения гиперссылки по умолчанию. Поскольку ваш тег <a
имеет ссылку на random.php
который должен переходить на другую страницу.
$('a').click(function(e){ e.preventDefault(); ..... }
Ваш код может выглядеть так:
$('a').click(function(e){ e.preventDefault(); $.ajax({ type: 'POST', url:'random.php', data: {name:$(this).attr('id')} }).done(function(msg){ alert(msg); }); });
Документ event.preventDefault()
находится здесь:
http://api.jquery.com/event.preventdefault/
Это может быть не главная проблема, но вам не нужно писать href
для random.php
следующим образом:
<a href="random.php" id="comp1">comp1</a>
Думаю, вы могли бы так:
<a href="#" id="comp1">comp1</a>
Или вот так:
<a href="javascript:void(0)" id="comp1">comp1</a>
Вы можете прочитать эту страницу:
Какое значение «href» следует использовать для ссылок на JavaScript, «#» или «javascript: void (0)»?
Надеюсь это поможет.
Попробуйте это, вам нужно предотвратить действие onclick, чтобы перейти на эту страницу.
$(document).ready(function() { $("a").click(function() { $.ajax({ type: "POST", url: "random.php", data: {"name" : $(this).attr('id')} }).done(function( msg ) { alert( "Data Saved: " + msg ); }); return false; // prevent from browsing that page }); });
HTML:
<a href="javascript:;" id="comp1">comp1</a> <a href="javascript:;" id="comp2">comp2</a> <a href="javascript:;" id='comp3'>comp3</a>
JS:
$('a').click(function(){ $.ajax({ type: "POST", url: 'random.php', data: { name: $(this).attr('id') } }) .done(function( msg ) { alert( msg ); }); });
Использовать href="javascript:;"
attr или e.preventDefault();
внутри обработчика событий, чтобы предотвратить выполнение ссылки.