Я пытаюсь обновить mysql, щелкнув ссылку, используя AJAX, но я ударил стену. У меня есть код, но он не работает.Обновление SQL через A HREF
Вот AJAX:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
//bind a listener to "click" event on links with class "markviewed"
$('a.markviewed').click(function(event) {
//prevent default behavior just in case
event.preventDefault();
//get ids from clicked <a>
var myid = $(this).attr('data-myid');
var postid = $(this).attr('data-postid');
//ping the address to mark clicked link as viewed
$.ajax('http://mywebsite.com/mark_viewed.php?myid=' + myid + '&postid=' + postid');
//redirect to the link in the href attribute
window.location.href = $(this).attr('href');
});
});
</script>
Это должно создать в HREF класс, который при нажатии на хиты mywebsite.com/mark_viewed.php который обновляет свою базу данных с ключевыми переменными, посланных в $myid
и $postid
.
Вот mark_viewed.php:
<?php
$con=mysqli_connect("XXX","XXX","XXX","XXX");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// get values sent from address bar
$myid=$_GET['myid'];
$postid=$_GET['postid'];
mysqli_query($con,"UPDATE comments SET status='viewed' WHERE to_id ='$myid' AND id='$postid'");
mysqli_close($con);
?>
И, наконец, это ссылка, пользователь видит:
$myid = $row['user_id']; // my id
$name = $row['board_name']; // collection name
$boardid = $row['board_id']; // collection id
$postid = $row['pin_id']; // post id
$url = $row['pin_url']; // image url
echo "<li><a href='/board/pins/$boardid/$postid' data-myid=' . $myid . ' data-postid=' . $postid . ' class='markviewed'>";
echo "<img src='$url' height='50' width='50'>";
echo "New comment in $name.";
echo "</a></li>";
Однако при тестировании он не работает. Ссылка, когда вы просто просматриваете страницу на странице с новым комментарием, и база данных нетронутой.
Что я делаю неправильно?
Удалить 'window.location.href = $ (this) .attr ('href');' – putvande
Выполняется ли ваш вызов ajax? Если так, что происходит, вы получаете сообщение об ошибке? – PugFugly
Вы не должны ... вам нужно проверить/очистить переменные '$ myid' и' $ postid' перед использованием в запросе. Помните, что пользовательский ввод - это ЗЛО! – Babblo