Ajax блокиране на потребител (добавяне на инфо. в дб)

Ticketa

Registered
Попаднал съм в една дилема. Понеже хич не ми разбира главата от ajax, но все пак тръгнах да правя нещо , защото така ще е по-добре за сайта.

Имам линкове от рода на:
<a href="#" id="ban-1">Ticketa</a>
<a href="#" id="ban-2">admin</a>
<a href="#" id="ban-3">test</a>

Измисления ajax, който аз си написах и не работи.

[js] $("#ban-user_ID").function() {
$.ajax({
type: "POST", url: "/faila.html", data: "action=ban&id=" + user_ID,
complete: function(data) {
alrt("успешен бан");
} else if {
alert("Този потребител е блокиран вече");
} else if {
alert("Не можеш да блокираш себе си");
} else {
alert("Възникна проблем със заявката");
}
});
});[/js]

и php кода:

PHP:
<?php
if(isSet($_POST['action'])) {
	switch($_POST['action']){
		case "ban":
			if (($user->privi['privileges_id'] == 1) && ($user->privi['privileges_id'] == 2)) {
				if(isSet($_GET['BANID'])) {
					$BANID = (int)$_POST['BANID'];
				} else {
					$BANID = "";
				}
				if($system->check_ban($BANID) > 0) {
					echo "този вече е баннат";
				} else {
					if($user->get['uid'] == $BANID) {
						echo "не можеш да банваш себе си.";
					} else {
						//query to insert in db
						echo "баннат";
					}
				}
			} else {
				echo "нямаш достъп.";
			}
		break;
		//останалия код
	}
} else {
	header ("Location: /index.php"); 
}
?>

Това, което искам е.

При натискането на един от линковете (примерите по-горе) да се извършва проверката във файла (php) дали този потребител е баннат и ако не е да бъде блокиран.

Проблема ми е в ajax заявката. След като бъде блокиран потребителя , просто да изпише: Този потребител беше блокиран.

Благодаря!
 
Аз не ти препоръчвам това,което си направил.Защо буташ всичко в ajax ? просто с ajax извеждай динамично съдържанието от php файла.И в php файла вече слагаш всички проверки и echo .И така каквото и да направиш ще ти изведе примерно само едно echo "Юзър адсад беше баннат".И ajax като взима информацията от php файла ще изведе направо това.

[js] $("#ban-user_ID").function() {
$.ajax({
type: "POST", url: "/faila.html", data: "action=ban&id=" + user_ID,
complete: function(data) {
$('.action').html(data);
}
});
});[/js]

.action си правиш един празен клас,в който ще ти показва информацията от php файла

и във файла примерно

if нещо си echo "готово" else echo "не е готово" и то ще ти изведе echoто което се е показало
 
Окей. Дотук за извеждането на дата те разбрах.

Обаче мисля, че няма да бачка js-то както си ми го дал.

Защо?

$("#ban-user_ID").function() {

Тук съм създал примерното ID-> ban-user_ID

Т.е. <a href="#" id="ban-1">test</a>
<a href="#" id="ban-2">test1</a>

Схвана ли ми мисълта? :)

Като това -1 и -2 е ID-то на потребителя
 
че то може и по друг начин.Просто при data пишеш user_id = и тук взимаш стойността на a href->id
 
Тоест?

И след чертата взима номера:
[js] var banUSER = $("#ban-");
$("#ban-").function() {
var user_ID = banUSER.attr("value");
$.ajax({
type: "POST", url: "/chatbox.html", data: "act=ban&id=" + user_ID,
complete: function(data) {
$('.action').html(data);
}
});
});[/js]

Не, че нещо. Но въобще не знам к'во правя, но се опитвам да го направя. :D
 
Не става. Чупи се кода.

[js]
<script type="text/javascript">
$(document).ready(function(){
var inputMessage = $("#message");
var loading = $("#loading");
var messageList = $(".messageList > ul");
function updateShoutbox(){
messageList.hide();
loading.fadeIn();
$.ajax({
type: "POST", url: "/chatbox.html", data: "act=update",
complete: function(data){
loading.fadeOut();
messageList.html(data.responseText);
messageList.fadeIn(2000);
}
});
}
function checkForm(){
if(inputMessage.attr("value"))
return true;
else
return false;
}
updateShoutbox();
$("#ShoutBoxForm").submit(function(){
if(checkForm()){
var message = inputMessage.attr("value");
$("#send").attr({ disabled:true, value:"Изпращане..." });
$("#send").blur();
$.ajax({
type: "POST", url: "/chatbox.html", data: "act=add&message=" + message,
complete: function(data){
messageList.html(data.responseText);
updateShoutbox();
$("#send").attr({ disabled:false, value:"Чат!" });
}
});
}
else alert("Полетата са празни!");
return false;
});
$("#ban").function() {
var id = $(this).attr("id");
$.ajax({
type: "POST", url: "/chatbox.html", data: "act=ban&id=" + id,
complete: function(data) {
$('.action').html(data);
}
});
});
});
</script>[/js]

Без кода:
$("#ban").function() {
var id = $(this).attr("id");
$.ajax({
type: "POST", url: "/chatbox.html", data: "act=ban&id=" + id,
complete: function(data) {
$('.action').html(data);
}
});
});

Няма проблеми - зарежда си ми информацията, със кода - се чупи кода.
 
Еми я огледай какво си направил.

Взимаш id-то и след това пак го взимаш.

Метода за ид-то ти е погрешен. Но, ако държиш да е така... взимай линка като селектор и след това взимай по този начин ид-то, както критрейт ти показа. Мини го през един регулярен израз, вземи числото и го подавай на Аякс.


ЕДИТ: Сега се прибрах и ето какво имам предвид:

[js]
$('a').click(function(){
var id = $(this).attr('id');
//....
});
[/js]

ЕДИТ 2: Сега забелязах, че правиш следното:

$('#ban').function(){}

На какъв event се надяваш тука ?
 

Back
Горе