Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

Нова тема
AJAX проблем
Тази тема е погледната 280 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 13.08.2008 01:12
po_taka
Ронин

Мнения: (192)

Проблема ми е че се бъгва много яко, предполагам нещо в жавата.
Добавям
Изтривам
Добавям
Натискам изтрии и аномалия...

Ако са нужни целите кодове ще ги дам, но мисля че това е достатъчно.


CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function liubimi_add_remove(deistvie){
   
document.getElementById("syob6tenie").innerHTML="Зареждане...";
   
xmlHttp=GetXmlHttpObject()
   
if (xmlHttp==null)
      {
         
alert ("Браузъра не поддържа HTTP Request")
         
return
     
}
   
var url="liubimi.php";
   
url="q";
   
url="liubimi.php";
   
if(deistvie=="add") { url=url+"?add=" + id ;}
   
else if(deistvie=="remove") { url=url + "?remove=" + id ;}
   
xmlHttp.onreadystatechange=stateChanged
   
xmlHttp.open("GET",url,true)
   
xmlHttp.send(null)
}

function stateChanged()
{
   
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
       
if(xmlHttp.responseText==1){
        
document.getElementById("liubimi").innerHTML="<a href=\"#\" onCLick=\"javascript:liubimi_add_remove('remove');return false;\" title=\"Изтрий песента от Любими\">Изтрий от Любими1</a>";
        
document.getElementById("syob6tenie").innerHTML="Песента беше успешно добавена към Любими";
        
}
        
else if(xmlHttp.responseText==2) {
        
document.getElementById("liubimi").innerHTML="<a href=\"#\" id=\"liubimi\" onCLick=\"javascript:liubimi_add_remove('add');return false;\" title=\"Добави песента към Любими\">Добави към Любими2</a>";
       
document.getElementById("syob6tenie").innerHTML="Песента беше успешно премахната от Любими";
       
}
        
else if(xmlHttp.responseText==4) {
        
document.getElementById("liubimi").innerHTML="<a href=\"#\" id=\"liubimi\" onCLick=\"javascript:liubimi_add_remove('remove');return false;\" title=\"Изтрий песента от Любими\">Изтрий от Любими4</a>";
       
document.getElementById("syob6tenie").innerHTML="Песента е вече добавена в Любими";
       
}
       
       
else if(xmlHttp.responseText==5) {
        
document.getElementById("liubimi").innerHTML="<a href=\"#\" id=\"liubimi\" onCLick=\"javascript:liubimi_add_remove('add');return false;\" title=\"Добави песента към Любими\">Добави към Любими5</a>";
       
document.getElementById("syob6tenie").innerHTML="Песента не беше намерена в Любими";
       
}
       
else if (xmlHttp.responseText==9)document.getElementById("syob6tenie").innerHTML="За да добавите песента в Любими , трябва да <a href=\"LogIn.php\">Влезете в профила си. <b>Вход</b><\/a>";
       
       
else document.getElementById("syob6tenie").innerHTML="Грешка при заявката";
       
}
}



CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$id=(integer)$_GET['id'];
if($_GET['add']){
$id=(integer)$_GET['add'];
$query = mysql_query("SELECT id FROM liubimi WHERE pesen = '$id' AND username='$username_id' LIMIT 1");
if(mysql_num_rows($query)) die("4");
else
   
$sqlquery = "INSERT INTO liubimi (username, pesen)
    VALUES ('
$username_id', '$id')";
   
$queryresult = mysql_query ($sqlquery);
   
if($queryresult) die("1");
}

   
else if($_GET['remove']){
$id=(integer)$_GET['remove'];
$query = mysql_query("SELECT id FROM liubimi WHERE pesen = '$id' AND username='$username_id' LIMIT 1");
if(!mysql_num_rows($query)) die("5");
else
   
$sqlquery = "DELETE FROM liubimi WHERE pesen = '$id' AND username='$username_id' LIMIT 1";
   
$queryresult = mysql_query ($sqlquery);
   
if($queryresult) die("2");
}


 
Това мнение е редактирано от po_taka на 13.08.2008 13:41
---------------------------
Потребител от: 15.04.08 | Всички уроци от po_taka | Всички скриптове от po_taka

http://www.tekstove.info/ дайте някви идеи кво да го права тва нещо
напиши eMail напиши лично съобщение виж профила на po_taka
Публикувано на: 13.08.2008 13:05
bgspace
Самурай

Мнения: (80)

Какво имаш предвид това аномалия ? ако може малко да пообясниш


 
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace
напиши eMail напиши лично съобщение виж профила на bgspace
Публикувано на: 13.08.2008 13:54
po_taka
Ронин

Мнения: (192)

ето видео:
http://potaka.hit.bg/AutoScreenRecorder_01%20Aug.%2013%2013.37.avi

1клик -> добавя се и жавата променя страницата правилно
2клик -> изтрива се и жавата променя страницата правилно
3клик -> добавя се и жавата променя страницата правилно
4клик -> пробвам да изтрия и става нещо...
Спира да работи на
Изтрий от Любими1
Песента беше успешно добавена към Любими


ако искаш да тестваш http://www.tekstove.info/ някоя песен , юсер testt/testt



вижте какво става с function liubimi_add_remove(deistvie)
добавих     alert(deistvie);  над document.getElementById("syob6tenie").innerHTML="Зареждане...";

http://potaka.hit.bg/AutoScreenRecorder_01%20Aug.%2013%2014.09.avi


 
Това мнение е редактирано от po_taka на 13.08.2008 14:13
---------------------------
Потребител от: 15.04.08 | Всички уроци от po_taka | Всички скриптове от po_taka

http://www.tekstove.info/ дайте някви идеи кво да го права тва нещо
напиши eMail напиши лично съобщение виж профила на po_taka
Публикувано на: 13.08.2008 21:12
bgspace
Самурай

Мнения: (80)

Това  което  исакш  да  стане  е  така :
 CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script language="javascript">
var links = new Array(
//
tuk  si  slagash linkovete
);
function actionInFavorites(actions,id){
   
var id;
   
document.getElementById("msg").innerHTML="Loading ....";
   
xmlHttp= new XMLHttpRequest();
   
var url="ajax.php?act="+actions+"&id="+id;
   
xmlHttp.open('GET',url,true);
   
xmlHttp.onreadystatechange=function(){
       
if(xmlHttp.readyState==4){
           
var show=xmlHttp.responseText;
           
if(show){
               
document.getElementById('fav').innerHTML=links[show];
           
} else{
               
document.getElementById('fav').innerHTML="Not Response !";
           
}
        }
    }
xmlHttp.send(null);
}
</
script>
това  ти е  php то :
 CODE
1
2
3
4
5
6
7
8
9
10
<?php
switch
($_GET['act']){
   
case "add":
        //
tuk  e  insert  zqvkata; $_GET['id']
       
break;
   
case "remove":
        //
tuk e  delete  zaqvkata $_GET['id']
       
break;
}
?>
а селект заявка ще  имаш само една  и  тя ще  е  където е аякса. От  там ще вземаш id то и ще  го изпращаш към  другата страница.


 
Това мнение е редактирано от bgspace на 13.08.2008 21:28
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace
напиши eMail напиши лично съобщение виж профила на bgspace
Публикувано на: 14.08.2008 07:59
po_taka
Ронин

Мнения: (192)

@bgspace 10я много :)


Имам проблем само с IE,след няколко добавяния и изтривания всичко се отчита , но в дб ги няма.
Този проблем го няма при firefox и opera
Все тая :) майната му на IE xD
Може пък да е от мойто ие ...
Важното е че под фф и опера фърчи :)

ето как стана накрая:
CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// ----------------------- НАЧАЛО ЛЮБИМИ

function GetXmlHttpObject()
{

   
var xmlHttp1=null;
try
   
{
       
// Firefox, Opera 8.0+, Safari
      
xmlHttp1=new XMLHttpRequest();
   
}
   
catch (e)
    {
       
// Internet Explorer
     
try
       
{
           
xmlHttp1=new ActiveXObject("Msxml2.XMLHTTP");
       
}
     
catch (e)
        {
           
xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP");
       
}
    }
   
return xmlHttp1;

   
}

var links = new Array(
" ",
"Песента успешно добавена.",
"Песента успешно изтрита.",
"За да добавите песента в Любими , трябва да <a href=\"LogIn.php\">Влезете в профила си.

<b>Вход</b><\/a>
",
"Песента е вече в любими",
"песента не е намерена в Любими"
);
function update_liubimi(show){
document.getElementById('syob6tenie').innerHTML=links[show];
if( (show==1)||(show==4)) document.getElementById('liubimi').innerHTML="<a href=\"#\"

onCLick=
\"javascript:liubimi_add_remove('remove',<?php echo $id;?>);return false;\" title=\"Изтрий от

Любими
\">Изтрий от Любими</a>";
else document.getElementById('liubimi').innerHTML="<a href=\"#\"

onCLick=
\"javascript:liubimi_add_remove('add',<?php echo $id;?>);return false;\" title=\"Добави към

Любими
\">Добави към Любими</a>";

}

function liubimi_add_remove(actions,id){
   
document.getElementById("syob6tenie").innerHTML="Зареждане ....";
   
xmlHttp= new XMLHttpRequest();
//    xmlHttp=GetXmlHttpObject();  
  
if (actions=="add")    var url="liubimi.php?add=1&id="+id;
   
else var url="liubimi.php?remove=1&id="+id;
   
xmlHttp.open('GET',url,true);
   
xmlHttp.onreadystatechange=function(){
       
if(xmlHttp.readyState==4){
           
var show=xmlHttp.responseText;
           
if(show){
               
update_liubimi(show);
           
} else{
               
document.getElementById('syob6tenie').innerHTML="Проблем при връзката със сървара!";
           
}
        }
    }
xmlHttp.send(null);
}


//КРАЙ ЛЮБИМИ


 
---------------------------
Потребител от: 15.04.08 | Всички уроци от po_taka | Всички скриптове от po_taka

http://www.tekstove.info/ дайте някви идеи кво да го права тва нещо
напиши eMail напиши лично съобщение виж профила на po_taka
Публикувано на: 14.08.2008 08:17
bgspace
Самурай

Мнения: (80)

Проблема  ти  при експлорера е следния. Просто той  си чете  от  хеша и за  това ен ти отчита  промените. Но ти може да  си оправиш настройките  на екслорера и да  не ти пази хеша. Може и  това да  си го направиш с  php c header("Cache-control:no-cache");


 
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace
напиши eMail напиши лично съобщение виж профила на bgspace
Публикувано на: 14.08.2008 14:53
po_taka
Ронин

Мнения: (192)

направо ми скри шапката, личи си че ги разбираш.
btw така е това което казваш , сега сичко е 6 :)

Като пусках темта, честно казано не учаквах някой изобщо да прочете сорса 
10я много bgspace


 
---------------------------
Потребител от: 15.04.08 | Всички уроци от po_taka | Всички скриптове от po_taka

http://www.tekstove.info/ дайте някви идеи кво да го права тва нещо
напиши eMail напиши лично съобщение виж профила на po_taka
Публикувано на: 14.08.2008 17:24
bgspace
Самурай

Мнения: (80)

И ти ще се научиш. Всичко идва с  времето си 


 
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace
напиши eMail напиши лично съобщение виж профила на bgspace
 1 посетител чете тази тема (0 потребители и 1 гост)  
Активни потребители: ---
   





IT-PLACE.NET © 2004 - 2008