Как регистрировать данные в BD кликая в HREF?

У меня есть этот код PHP, который позволяет мне знать, считаю ли я друзей зарегистрированными (когда я вхожу в Ваш профиль, - кнопка, которую он говорит ДОБАВЛЯТЬ), если пользователь - мой друг, говорит AGREGADO.muy хорошо. Но мне хотелось бы, что они помогли мне, в который, когда я нажму кнопку (которая является ссылкой), этот выполнил какой-то код, чтобы вводить идентификацию этого пользователя в BD (Если он не мой друг). Уже будьте посредством ajax, не. Но просвет, когда я кликну.

Мне хотелось бы, что он пошел внутри ELSE.

<?php

 include_once('conexion.php');
if ($user != $my_id) {
 $mysqli = mysqli_connect("localhost", "root", "", "registros");
$quer = mysqli_query($mysqli,"SELECT * FROM friends WHERE (User_one =
'$my_id'     
AND User_two = '$user') OR (User_two = '$user' AND User_one = '$my_id')");

if (mysqli_num_rows($quer) == 1) 

{

    $mensaje = "<a href= '#'>Already Friends</a>";
}



else{

$mensaje = "<a href= 'agregarN.php?Id=".$user."'>No Friends</a>";

}


}

?>
3
задан 25.09.2016, 21:35
3 ответа

Серьезная форма с ajax.

$mensaje = "<a onclick='guardar(".$user.")'>No Friends</a>";

JS

<script>
    function guardar(id) {
        $.ajax({
            type: "POST",
            url: "tu url",
            data: {
                iduser:id,
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert(errorThrown);
            },
            success: function (data, textStatus, jqXHR) {
                alert("se añadio el amigo");
            }
        });
    }
</script>

PHP СОХРАНЕНИЯ

<?php
    $idusuario = $_POST['iduser'];
    //haces tu inserción
1
ответ дан 24.11.2019, 13:18
  • 1
    Спасибо друг. Как кажется, последней, что было плохое, была моя таблица BD " friend_request" nose, если он может приносить rayita debajo.pero в конце концов. Я сделаю другую снова. Спасибо!!! – luis 26.09.2016, 23:47

Он поместил бы это тебе как комментарий, так как это не часть ответа, но датируйте счет в WHERE твоей консультации

WHERE (User_one ='$my_id' AND User_two = '$user') OR (User_two = '$user' AND User_one = '$my_id') 

оба условия - те же самые, я думаю, что ты хотел поместить это

WHERE (User_one ='$my_id' AND User_two = '$user') OR (User_one = '$user' AND User_two = '$my_id')

Относительно твоей проблемы со мной случается это как решение Меняет else на нечто похожее:

$mensaje = "<a href='#' id='id".$user."' class='enlace'>No Friends</a>";

Вопрос состоит в том, чтобы создавать тебе этикетку пойдите, и что зарегистрировал тебе стоимость друга, которого ты хочешь ввести, если id 35, этикетка осталась бы 'пойдите = "id35" и поле class, он будет служить для того, чтобы сделать призыв к событию ajax.

Потом из-за Аякса, ты мог бы делать insercción

<script type="text/javascript">
     $( document ).ready(function() {
          $(".enlace").click(function(){
              var id= $(this).attr('id');
              $.ajax({
                    type: 'POST',
                    url:" ", //Direccion de tu fichero php, que va a realizar la inserción
                    data: {id:id.replace(/\w/g,'')},
                    beforeSend: function(){
                        //Puedes poner una animación mientras se hace la inserción
                    },

                    success: function(data) {
                        var error=data.datos[0].error;  //Valor que te retornaría tu php, indicando si se ha guardado el amigo

                        if (error==1){ //Por ejemplo se ha insertado
                            $("#"+id).html('Already Friends');
                            $("#"+id).removeAttr('class');
                        } else{
                            alert("Error al realizar la insercion")
                        }
                },

                    error: function (response) {
                        alert("Error en el proceso");
                    }
                });
            }

        });
    });
</script>
2
ответ дан 24.11.2019, 13:18

Предполагая, что ты считаешь соединение этим:

<a href="/amigos/agregar?uuid=ab3853f4950p9" 
    onclick="agregarAmigo(event)">Agregar amigo</a>

Достаточно делать простую просьбу AJAX:

function agregarAmigo(ev) {
  ev.preventDefault();
  const URI = ev.target.href;
  let xhr = new XMLHttpRequest();
  xhr.open('GET', URI);
  xhr.onload = () => {
    if(xhr.status === 200 && xhr.readyState === 4) {
      // mostrar banner o algo que informe que ha sido agregado
    }
    if(xhr.status === 500) {
      // mostrar error
    }
  };
  xhr.send();
};

И в backend:

$targetUUID = $_GET['uuid'];
$userUUID = $_SESSION['uuid'];

$query = /* tu query */;
$result = mysqli_query($conn, $query);

if($result == FALSE) {
    http_response_code(500);
    echo 'Ha ocurrido un error';
} else {
    http_response_code(200);
    echo 'Amigo agregado';
}
1
ответ дан 24.11.2019, 13:18
  • 1
    ошибка и больше ошибка. – luis 26.09.2016, 01:32
  • 2
    И однако ты не помещаешь ни error, ни más error. Это форум для программистов, не для магов wey. Размести твои ошибки. – gugadev 26.09.2016, 01:36
  • 3
    ошибка и больше ошибка. Я иду в инструмент разработчика и он говорит мне " 401 unauthorized".Puse код backend в файле php отдельный и utilize " include" чтобы это соединять. Код ajax я это поместил на той же странице профиля. Друг ты мог бы объяснять мне код Аякс? Потому что я думаю, что ему не хватает чего-то. – luis 26.09.2016, 01:45
  • 4
    @luis и #191; Одень edici и # 243; n? Первый if (в случае query возвратил FALSE, а именно, err и # 243; nea, ты возвращаешь 500. В else, ты возвращаешь 200. Смотри actualizaci и # 243; n и попытайся. – gugadev 26.09.2016, 16:23