|
I have a problem to pass a javascript object variable value to mysql database.
I dont really code in javascript and i dont know what is wrong.
I make an object variable. With this object i make 4 properties and then make some calculations that show some values. I need to take the results values to mysql database.
I searched in google and i found that i need ajax to do that.
But it doesnt work. I dont have experience in ajax either.
I will show you the code and hope anyone can help me
This is the Javascript code:
<script language="javascript" type="text/javascript">
function ajaxFunction(){
var ajaxRequest;
try{
ajaxRequest = new XMLHttpRequest();
} catch (e){
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
}
}
<!-- Getting the end time
ds = new Date();
e_time = ds.getTime();
var res = new Object();
res.bytes_transfered =document.getElementById('age').value <? echo strlen($random_string); ?>;
res.total_time_seconds = (e_time-s_time)/1000;
res.generatied_in = <? echo round($stop_time - $start_time, 5); ?>;
res.ip = "<? echo $_SERVER['REMOTE_ADDR'].' ['.gethostbyaddr($_SERVER['REMOTE_ADDR']).']'; ?>";
-->
var queryString = "?res.bytes_transfered=" + res.bytes_transfered + "&res.total_time_seconds=" + res.total_time_seconds + "&res.generatied_in =" + res.generatied_in + "&res.ip =" + res.ip;
ajaxRequest.open("GET", "insert.php" + queryString, true);
ajaxRequest.send(null);
new Ajax.Request('insert.php', {
onSuccess : function(xmlHTTP) {
eval(mlHTTP.responseText);
}
});
</script>
This is the insert.php file
<?php
$fecha= date("Y-m-d H:i:s");
$connnect= mysql_connect("localhost", "root", "123456");
mysql_select_db("dbname");
$res.bytes_transfered= mysql_real_escape_string($_GET['res.bytes_transfered']);
$res.total_time_seconds= mysql_real_escape_string($_GET['res.total_time_seconds']);
$res.generatied_in= mysql_real_escape_string($_GET['res.generatied_in']);
$res.ip= mysql_real_escape_string($_GET['res.ip']);
$queryreg=mysql_query("INSERT INTO grafico(Cantidad, Tiempo, IP, Bajada, Subida) VALUES ('$res.bytes_transfered','$res.total_time_seconds','$res.generatied_in','$res.ip=','0',$fecha) ");
if (!$queryreg) {
die('No se ha podido ingresar su registro.');
}
else{
die("Usted se ha registrado exitosamente!");
}
?>
I hope that someone can help me!
|
|
|
|
|
Don't reinvate a wheel. Use jQuery ajax function or something similar.
No more Mister Nice Guy... >: |
|
|
|
|
|
Thank you for your response!
But my problem is how can i do that? Can you show me how? Because i´m a newbie in javascript/ajax and i dont understand what is wrong with the code.
|
|
|
|
|
You didn't include any errors. It's been a while since I wrote any php (and I am glad... ) so it may be rusty but I don't see any obvious deficiencies.
Read this: []
It will decrease length of your code and with it maybe some bugs will disappear.
Another thing is that I don't see any reason to send client IP address back and forth (REMOTE_ADDRESS that it is for right?).
I will never change between postbacks so why are you inserting it in JS just to send it back to server?
No more Mister Nice Guy... >: |
|
|
|
|
|
Why you just do a service in php? And in the js make a post something like that maybe:
var DataToSend = new object();
DataToSend.name = $('#textName').val();
$.post('myservice.php',DataToSend,function(response) {
alert(response);
});
|
|
|
|