query binnen js functie
Aangezien het zowel php als javascript betreft maar hoofdzakelijk php is heb ik het in deze categorie geplaatst.
Ik maak gebruik van een js libary die het schudden met mijn mobile device detecteert.
Nu als dit gebeurt moet er een query uitvoerd worden binnen php, maar hoe kan ik dit doen binnen mijn javascript code?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$(this).gShake(function() {
//alert("shaked");
var random = Math.floor(Math.random()*10);
$(".test123").text(random);
$("#test1234").html('<?php
echo "shaked";
?>');
});
//alert("shaked");
var random = Math.floor(Math.random()*10);
$(".test123").text(random);
$("#test1234").html('<?php
echo "shaked";
?>');
});
Het random getal generen werkt perfect, maar als test probeer ik dus nu "shaked" op het scherm af te drukken ipv van mijn query uit te voeren dus dat stukje moet mijn php query worden. Maar dit wil dus niet werken.
Op welke manier moet ik dit gaan doen?
Mvg,
Joren
Met ajax. Javascript draait namelijk op je device en php op de server, die kan je niet zomaar mengen.
Ik heb reeds met ajax gewerkt (json) dan in het specifiek, maar hoe moet het dan verder? zie commentaar in onderstaande code.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$.ajax({
url: "mijn-query.php",
dataType: "jsonp", //ik heb al met json gewerkt maar welke datatype moet ik dan meegeven voor mijn php bestand?
success: function(json) {
//hoe moet ik het hier gaan opvangen dan zodat hij die query uitvoert?
}
});
url: "mijn-query.php",
dataType: "jsonp", //ik heb al met json gewerkt maar welke datatype moet ik dan meegeven voor mijn php bestand?
success: function(json) {
//hoe moet ik het hier gaan opvangen dan zodat hij die query uitvoert?
}
});
Toevoeging op 27/12/2013 16:28:06:
Ok ik ben nog een paar stappen verder geraakt.
Ik haal nu via ajax een php bestand op waar mijn connectie inzit + de code om mijn foto op te halen.
Enkel voert hij mijn success functie niet uit en krijg ik dus geen data op mijn scherm terug.
Maar als ik naar de netwerk tap ga in de developers tool van chrome en daar sql.php selecteer word daar wel mijn foto weergegeven, nu wil ik deze dus ook in mijn pagina tonen maar ik zie mijn fout niet.
code:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$.ajax({
type: "POST",
url: 'sql.php',
data: "html",
dataType: "json",
success: function(data) {
console.log("Success!");
console.log(data);
}
});
type: "POST",
url: 'sql.php',
data: "html",
dataType: "json",
success: function(data) {
console.log("Success!");
console.log(data);
}
});
sql.php:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$connect = new mysqli('localhost', 'root', 'root', 'ioutfit');
$result = $connect->query('SELECT * from tblFotos WHERE seisoon = "zomer" ORDER BY rand() LIMIT 1' );
while($row = $result->fetch_array()) {
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['foto']) . '" width="20%" height="20%"/>';
echo '<br>';
}
?>
$connect = new mysqli('localhost', 'root', 'root', 'ioutfit');
$result = $connect->query('SELECT * from tblFotos WHERE seisoon = "zomer" ORDER BY rand() LIMIT 1' );
while($row = $result->fetch_array()) {
echo '<img src="data:image/jpeg;base64,' . base64_encode($row['foto']) . '" width="20%" height="20%"/>';
echo '<br>';
}
?>
Iemand die ziet waar ik de fout in ga of ergens iets mis?
Upload dit even naar een webserver zodat we dit zelf kunnen testen, of geef een SQL-uitdraai uit PHPMyAdmin.
dataType: 'json' verwacht een json string terug en geen pure html, verander dit dus in: dataType: 'html'
Opgelost!