В идеале вы не должны переключаться между <?php
и <?
, так как я считаю, что поддержка коротких тегов прекращается.
Кроме того, вы еще не очистили свое имя пользователя
$user = mysql_real_escape_string ($_POST['username']);
Обновлено 1
Код ниже является рабочим примером, я немного почистил ваш код. Однако с вашим исходным кодом изменение username : $('#username').val()
на username : $('#username').html()
должно работать для вас.
Код для so.html
<a href="www.google.com" id="profile_link"><div id="username">Someusername</div></a>
<div id="message"></div>
<script>
$("#profile_link").click(function(event){
event.preventDefault();
var v_username = $("#username").html();
$.post("viewuser.php",{"username": v_username},function(data) {
$('#message').addClass('success').hide().html(data).fadeIn();
}, "html");
});
</script>
Код для viewuser.php
<?php
echo "The submitted request was for the username $_POST[username]";
?>
Выход:
Отправленный запрос был на имя пользователя Someusername
Обновлено 2
Код для so.html
<a href="www.google.com" class="profile_link"><span class="username">Username1</span></a>
<a href="www.google.com" class="profile_link"><span class="username">Username2</span></a>
<div id="message"></div>
<script>
$(".profile_link").click(function(event){
event.preventDefault();
var v_username = $(this).children(".username").html();
$.post("viewuser.php",{"username": v_username},function(data) {
$('#message').addClass('success').hide().html(data).fadeIn();
}, "html");
});
</script>
Я еще раз обновил его для вас. Мы используем $ (this) .children (". Username"), чтобы гарантировать, что мы возвращаем имя пользователя по выбранной ссылке. Мы перешли на использование классов, поскольку теперь существует более одного экземпляра каждого элемента, и я изменил HTML-код на использование тега span, поскольку он немного более уместен.