Lenny'tje
22 July 2012, 20:41
Hoy,
Ik heb een probleempje.
Ik ben net begonnen met jQuery AJAX en wil met die jQuery AJAX gegevens naar een database schrijven.
Nu ik kan al gegevens uit de database halen maar ik weet nog geen duidelijke manier om gegevens naar de database te schrijven.
Ik heb al geprobeerd om een script te maken maar tot nu toe nog geen succes en weet ook nog niet precies waar ik ergens moet beginnen dus ben maar met iets gaan "experimenteren" maar tot nu toe zonder succes, al geloof ik wel dat ik er dicht tegen zit :p.
Nou goed, hier de html:
<span class="invoer">[Invoeren]</span><input type="text" name="naam" id="naam"><div class="dataInput"></div>
En hier de jQuery:
$(function(){
$('.invoer').click(function(){
alert('invoer');
postData();
});
});
function postData(){
dataString = $("#naam").serialize();
alert('tussenstap gemaakt. Datastring: '+dataString);
var output = '';
$.ajax({
type: 'POST',
url: 'php.php?function=postdata',
data: dataString,
dataType: 'json',
beforeSend: function (data){
$('.knop').after("<img src='./images/loader.gif' id='loader'>");
var i = $('#loader');
var ih = i.height();
var iw = i.width();
var w = $(window);
var wh = w.height();
var ww = w.width();
totalHeight = wh-ih;
height = totalHeight/2;
totalWidth = ww-iw;
width = totalWidth/2;
i.css({'margin-top':height,'margin-left':width,'position':'absolute'});
},
success: function(data){
$('img#loader').remove();
output += 'De gegevens zijn succesvol ingevoerd <br>';
$(".dataInput").html(output);
},
error: function(data){
$('img#loader').remove();
output += 'De gegevens kunnen niet worden ingevoerd <br>';
$(".dataInput").html(output);
}
});
};
En hier de PHP code:
function postData(){ //$input = '[{"id":"1","naam":"Nu hebben we weer 1 als ID"},{"id":"2","naam":"hoy...."},{"id":"3","naam":"hoy2...."}]'; $input = $_POST['naam']; $json = json_decode($input,true); foreach($json as $value){ mysql_query("INSERT INTO ajax.ajax(naam) VALUES('".$value['naam']."')"); //echo 'Key: '.$value['id'].' value: '.$value['naam'].'<br>'; }}
Dus wat moet het eigenlijk doen, heel "simpel".
Ik klik op de tekst-knop [Invoer] en dan laad er een loading plaatje in wanneer het invoeren is gelukt komt er een tekstje te staan dat het gelukt is en dan verdwijnt het loading plaatje -> deze werking zou het moeten zijn maar het gaat dus steeds fout. Ik heb nog geen goed voorbeeld gevonden op Google om de logica beter te snappen, daarom is het me ook nog niet gelukt, nu de ajax stuurt iets door naar het php script vermoedelijk onder de naam van het veld dus "naam" + de waarde ervan. Het php script moet dit opvangen en terug coderen naar php code omdat als het van AJAX komt en data type JSON staat moet dit in JSON zijn gestuurd, hier heb ik json_decode() voor gebruikt die zijn invoer krijgt van de $_POST['naam'] maar dit werkt dus niet...
Kan iemand me met dit script helpen? Ik heb dit gemaakt gewoon om de logica ervan te begrijpen zodat ik er straks mee aan de slag kan gaan.
Ik heb een probleempje.
Ik ben net begonnen met jQuery AJAX en wil met die jQuery AJAX gegevens naar een database schrijven.
Nu ik kan al gegevens uit de database halen maar ik weet nog geen duidelijke manier om gegevens naar de database te schrijven.
Ik heb al geprobeerd om een script te maken maar tot nu toe nog geen succes en weet ook nog niet precies waar ik ergens moet beginnen dus ben maar met iets gaan "experimenteren" maar tot nu toe zonder succes, al geloof ik wel dat ik er dicht tegen zit :p.
Nou goed, hier de html:
<span class="invoer">[Invoeren]</span><input type="text" name="naam" id="naam"><div class="dataInput"></div>
En hier de jQuery:
$(function(){
$('.invoer').click(function(){
alert('invoer');
postData();
});
});
function postData(){
dataString = $("#naam").serialize();
alert('tussenstap gemaakt. Datastring: '+dataString);
var output = '';
$.ajax({
type: 'POST',
url: 'php.php?function=postdata',
data: dataString,
dataType: 'json',
beforeSend: function (data){
$('.knop').after("<img src='./images/loader.gif' id='loader'>");
var i = $('#loader');
var ih = i.height();
var iw = i.width();
var w = $(window);
var wh = w.height();
var ww = w.width();
totalHeight = wh-ih;
height = totalHeight/2;
totalWidth = ww-iw;
width = totalWidth/2;
i.css({'margin-top':height,'margin-left':width,'position':'absolute'});
},
success: function(data){
$('img#loader').remove();
output += 'De gegevens zijn succesvol ingevoerd <br>';
$(".dataInput").html(output);
},
error: function(data){
$('img#loader').remove();
output += 'De gegevens kunnen niet worden ingevoerd <br>';
$(".dataInput").html(output);
}
});
};
En hier de PHP code:
function postData(){ //$input = '[{"id":"1","naam":"Nu hebben we weer 1 als ID"},{"id":"2","naam":"hoy...."},{"id":"3","naam":"hoy2...."}]'; $input = $_POST['naam']; $json = json_decode($input,true); foreach($json as $value){ mysql_query("INSERT INTO ajax.ajax(naam) VALUES('".$value['naam']."')"); //echo 'Key: '.$value['id'].' value: '.$value['naam'].'<br>'; }}
Dus wat moet het eigenlijk doen, heel "simpel".
Ik klik op de tekst-knop [Invoer] en dan laad er een loading plaatje in wanneer het invoeren is gelukt komt er een tekstje te staan dat het gelukt is en dan verdwijnt het loading plaatje -> deze werking zou het moeten zijn maar het gaat dus steeds fout. Ik heb nog geen goed voorbeeld gevonden op Google om de logica beter te snappen, daarom is het me ook nog niet gelukt, nu de ajax stuurt iets door naar het php script vermoedelijk onder de naam van het veld dus "naam" + de waarde ervan. Het php script moet dit opvangen en terug coderen naar php code omdat als het van AJAX komt en data type JSON staat moet dit in JSON zijn gestuurd, hier heb ik json_decode() voor gebruikt die zijn invoer krijgt van de $_POST['naam'] maar dit werkt dus niet...
Kan iemand me met dit script helpen? Ik heb dit gemaakt gewoon om de logica ervan te begrijpen zodat ik er straks mee aan de slag kan gaan.