metal_head
Registered
От снощи уча AJAX и почти няма неясни неща. Научих се да извличам разни работи от разни файлове, но нещо не мога да се оправя с четенето и записването от базите данни. За момента ползвам GET метода, защото е малко по-простичък.
Ето какво имам:
[js]
function SetRatemark(postId, userId){
var req;
try{
// Проверка за Opera, Firefox, Safari
req = new XMLHttpRequest();
} catch (e){
// Проверка за IE
try{
req = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try{
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){
// Something went wrong
alert('Браузърът е прекалено стар!');
return false;
}
}
}
// Ако имаме отговор от сървъра, записваме в textfield myfield отговора.
req.onreadystatechange = function(){
if(req.readyState == 4) document.myfield.value = req.responseText;
}
//Изпращаме заявка до файл calculate.php с параметрите
var queryString = '?post_id='+postId+'&userId='+userId+'&rate=1'
req.open('GET', 'calculate.php'+querryString, true);
req.send(null);
}
[/js]
В calculate имам:
Имам бутон във файла с AJAX кода:
Като кликна бутона обаче нищо не се записва в базата данни и нищо не се показва в текстовото поле myfield.
Само да отбележа, че с този JavaScript нямам никакъв опит, но имам голям опит с друг JavaScript, който е диалект на оригиналния и се използва за гейм разработка в игровия енджин Unity, така че разбирам какво става. Не разбирам само защо не се получава :/
Ето какво имам:
[js]
function SetRatemark(postId, userId){
var req;
try{
// Проверка за Opera, Firefox, Safari
req = new XMLHttpRequest();
} catch (e){
// Проверка за IE
try{
req = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try{
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){
// Something went wrong
alert('Браузърът е прекалено стар!');
return false;
}
}
}
// Ако имаме отговор от сървъра, записваме в textfield myfield отговора.
req.onreadystatechange = function(){
if(req.readyState == 4) document.myfield.value = req.responseText;
}
//Изпращаме заявка до файл calculate.php с параметрите
var queryString = '?post_id='+postId+'&userId='+userId+'&rate=1'
req.open('GET', 'calculate.php'+querryString, true);
req.send(null);
}
[/js]
В calculate имам:
PHP:
mysql_query("INSERT INTO post_rates (post_id, user_id, type, rate)
VALUES('".$_GET['post_id']."', '".$_GET['user_id']."', 'for', '".$_GET['rate']."')");
echo "INSERT INTO post_rates (post_id, user_id, type, rate)
VALUES('".$_GET['post_id']."', '".$_GET['user_id']."', 'for', '".$_GET['rate']."')";
Имам бутон във файла с AJAX кода:
HTML:
<input type='button' onclick='SetRatemark(".$post['post_id'].", ".$user_id.");' name='set_mark' class='rate_button' value=' '>
Като кликна бутона обаче нищо не се записва в базата данни и нищо не се показва в текстовото поле myfield.
Само да отбележа, че с този JavaScript нямам никакъв опит, но имам голям опит с друг JavaScript, който е диалект на оригиналния и се използва за гейм разработка в игровия енджин Unity, така че разбирам какво става. Не разбирам само защо не се получава :/