![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
Bardzo proszę o pomoc, walczę z tym już nie wiem ile, i się dzisiaj definitywnie poddaje. Nie wiem co jest nie tak. Problem polega na tym, że oneclick wywołuje funkcję php i niestety co najgorsze, nie odpala się ona zawsze, wygląda to tak, że raz działa, a raz nie i nie ma tutaj znaczenia przeglądarka. Przykład: W bloku head mam: <script type="text/javascript" src="js/functions.js"></script> W bloku php mam: 1. posta action // wyrzucenie wiadomości IF ($_POST['action'] == 'set_delete') { $update = "UPDATE CHAT SET is_active = 1 WHERE id = ".$_GET['id']; $mysql_result = mysql_query($update); IF (!$mysql_result){get_errors($_SESSION['userid'], 'CHAT.PHP -> POST -> SET_DELETE');} } 2. wywołanie onclickiem: <div id="chat_warn" onclick="f_template('<?=C95?>', 'set_delete', 'chat', '<?="&id=".$i['id']?>')"><?=C95?></div> gdzie C95 to pobieranie tekstu w zależności od aktualnej wartości języka. 3. funkcja f_template znajduje się w js/functions.js: /* CONFIRM */ function f_template(f_confirm, f_action, f_site, f_condition) { var v_params = "action="+f_action; var v_xmlhttp; if (window.XMLHttpRequest) { v_xmlhttp = new XMLHttpRequest(); } else { v_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } if (f_confirm=='') { var v_statement = true; } else { var v_statement = confirm(f_confirm); } if (v_statement==true) { v_xmlhttp.open("POST","logged.php?subpage="+f_site+f_condition,true); v_xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); v_xmlhttp.setRequestHeader("Content-length", v_params.length); v_xmlhttp.send(v_params); } setTimeout(function(){ window.location.reload(); },60); } Podsumowując: Mam podstronę na której chce wywołać sobie set_delete w onclick wywołuje funkcje javascript którą wracam ponownie do tej podstrony na której wywoływałem bo znajduje się tam instrukcja funkcji (post action) która ma wykonać pewne operacje na bazie. Bardzo proszę o pomoc. Czemu to raz zdziała a raz nie? Jak nie działa to wygląda to tak, że przeładowuje coś ale nie wchodzi w tego post action. Powiedzmy raz na 20 razy jak się kliknie zadziała. Czasami w ogóle nie działa, a czami kilka razy pod rząd działa. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W ogóle nie czekasz na wynik działania żądania Ajax - przeładowujesz stronę po 60 ms.
Skorzystaj z właściwości onreadystatechange obiektu ajaxowego. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 10.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki.
v_xmlhttp.onreadystatechange = function() { setTimeout(function(){ window.location.reload(); },1); } Czy jak zrobię coś takiego będzie ok? Niby tak zrobiłem i działa, ale mogłem akurat załapać się na ten moment co wchodzi. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 10:44 |