Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2020, 19:10
Аватар для #dron_87
Новичок на форуме
Отправить личное сообщение для #dron_87 Посмотреть профиль Найти все сообщения от #dron_87
 
Регистрация: 05.12.2020
Сообщений: 6

Лайки через AJAX
Всем привет.я вот написал систему лайков для картинок и подскажите почему когда я нажимаю "лайк" на картинку то в ответ мне присылает как бы дубликат этой же страницы?
и все картинки становятся громадными и форма комментариев также дублируется и на страничке их получаются пары.прикреплённые картинки показывают до и после нажатия лайк и на картинке показывает вторую форму.написал код отправки запроса на страницу likeimgs.php которая взаимодействует с ajax методом load.

///здесь код страницы fullscreen.php с формой///

if(isset($_GET['aloneImgcar']) and $_GET['aloneImgcar'] != ""){
    $aloneImgcar = $_GET['aloneImgcar'];
    $mainKey = $_GET['aloneImgcar'];
    $table = "auto";
    $alonekey = 'aloneImgcar=' . $mainKey;
}
if(isset($_GET['aloneImgGirl']) and $_GET['aloneImgGirl'] != ""){
    $aloneImgGirl = $_GET['aloneImgGirl'];
    $mainKey = $_GET['aloneImgGirl'];
    $table = "girls";
    $alonekey = 'aloneImgGirl=' . $mainKey;
}
if(isset($_GET['funimgs']) and $_GET['funimgs'] != ""){
    $funimgs = $_GET['funimgs'];
    $mainKey = $_GET['funimgs'];
    $table = "funny";
    $alonekey = 'funimgs=' . $mainKey;
}
 
$rud = mysql_connect("localhost","sky","111111");
$turnOn = mysql_select_db("pics",$rud);
 
$zapros = mysql_query("SELECT * FROM $table WHERE id=$mainKey");
$background = mysql_fetch_array($zapros);

В качестве значений в input передал переменные(написанные сверху) для передачи их к javascript который будет передавать их скрипту likeimgs.php
Написал отслеживание события клика к type="button" id="submit" для отправки этих скрытых полей с values:

<div class="countLikesandView">
    <form action="likesvideo.php" method="post">
    <input type="hidden" id="ip" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR'];?>">
    <input type="hidden" id="id" name="id" value="<?php echo $mainKey;?>">
    <input type="hidden" id="parametrurl" name="parametrurl" value="<?php echo $alonekey;?>">
    <input type="hidden" id="table" name="table" value="<?php echo $table;?>">
    <input type="button" id="submit" value="liked?">
        <?php 
echo "<span style='color:red;'>" . $background['likers'] . "</span>";
if(!empty($_SESSION['viewed'])){
echo $_SESSION['viewed'];
unset($_SESSION['viewed']); 
}
    ?>
    </form>
    </div>
и типа если будет клик по #submit то подгрузить данные с likeimgs.php
<script type="text/javascript">
$('#submit').click(function(){
var ip = $('#ip').attr('value');
var id = $('#id').attr('value');
var parametrurl = $('#parametrurl').attr('value');
var table = $('#table').attr('value');
$('.backgroundFromfullscreen').load('likeimgs.php', {ip:ip,id:id,parametrurl:parametrurl,table:table});
});
</script>

///конец кода страницы fullscreen.php с формой///

///здесь код страницы likeimgs.php которая сообщает оценена ли картинка и если нет то обновить ячейку таблицы
и затем подгружать количество лайков из этой страницы в страницу fullscreen.php///


$rud = mysql_connect("localhost","sky","111111");
mysql_select_db("pics",$rud);
if(isset($_POST['ip'])){
    $ip = $_POST['ip'];
}
if(isset($_POST['id'])){
    $id = $_POST['id'];
}
if(isset($_POST['parametrurl'])){
    $parametrurl = $_POST['parametrurl'];
}
if(isset($_POST['loadauto'])){
    $loadauto = $_POST['loadauto'];
}
if(isset($_POST['table'])){
    $table = $_POST['table'];
}
 
if($table == 'auto'){
    $ipusersforpics = 'ipusersforauto';
}
if($table == 'girls'){
    $ipusersforpics = 'ipusersforgirls';
}
if($table == 'funny'){
    $ipusersforpics = 'ipusersforgirls';
}
 
 
$myrow3 = mysql_query("SELECT * FROM $ipusersforpics");
$itog3 = mysql_fetch_array($myrow3);
do{
if(isset($itog3['post']) && isset($itog3['ip']) && $itog3['ip'] == $ip && $itog3['post'] == $id){
$_SESSION['viewed'] = "Вы уже оценили эту картинку";
header("location:fullscreen.php?$parametrurl");
exit;
}
}
while($itog3 = mysql_fetch_array($myrow3));
$myrow = mysql_query("SELECT * FROM $table WHERE id='$id'");
$itog = mysql_fetch_array($myrow);
$likers = $itog['likers'] + 1;
$myrow1 = mysql_query("UPDATE $table SET likers='$likers' WHERE id=$id");
$myrow2 = mysql_query("INSERT INTO $ipusersforpics(ip,post) VALUES('$ip','$id')");
$myrow4 = mysql_query("SELECT * FROM $table WHERE id=$id");
$itog4 = mysql_fetch_array($myrow4);
do{
$res = $itog4['likers'];
}
while($itog4 = mysql_fetch_array($myrow4));
 
$_SESSION['viewed'] = "thank you for like";
header("location:fullscreen.php?$parametrurl");
exit;
echo <<< MyObject
<p>{$res}</p>
MyObject;


и как я заметил что то не так с этим тэгом так как оно возвращает значения

<input type="hidden" id="parametrurl" name="parametrurl" value="<?php echo $alonekey;?>">

так как этот тэг несёт в себе адрес страницы в value с именем переменной parametrurl которая отлавливается в likeimgs.php и возвращает результат(оценили картинку или нет)
при помощи PHP
$_SESSION['viewed'] = "Вы уже оценили эту картинку";
header("location:fullscreen.php?$parametrurl");

или я ошибаюсь что это именно этот тэг?
и в итоге оно мне присылает дубликат целой страницы с большими картинками которые я прикрепил итд.

Постарался поподробней объяснить думаю понятно.
Изображения:
Тип файла: jpg 4.jpg (18.4 Кб, 1 просмотров)
Тип файла: jpg 5.jpg (7.7 Кб, 1 просмотров)
Ответить с цитированием