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.