Dylan dat wil sws niet want script.js is javascript bestand en dat php zal dan niet worden uitgevoerd.
En weet 99% zeker dat het niet kan, maar meten is weten. Javascript = Client, PHP = Server
Het voorbeeld dat ik gaf werkt prima hoor. Maar goed daarom zei je ook 99%.
Ik zei ook dat het niet de mooiste oplossing is en met json een betere manier is.
[quote="Hertog Jan op 07/11/2013 13:40:33"]
Dylan dat wil sws niet want script.js is javascript bestand en dat php zal dan niet worden uitgevoerd.
En weet 99% zeker dat het niet kan, maar meten is weten. Javascript = Client, PHP = Server
Het voorbeeld dat ik gaf werkt prima hoor. Maar goed daarom zei je ook 99%.
Ik zei ook dat het niet de mooiste oplossing is en met json een betere manier is.
[/quote]
Nou volgens mij niet, je hebt nu niet het ID in een variabele maar een javascript string. Hoe krijg je dat id nu in de database?
<script>
var id = 2;
</script>
<?php
$id = "<script>document.write(id);</script>";
mysql_query('INSERT INTO tabel SET id = "'.$id.'"');
?>
Oftewel in je database komt nu letterlijk '<script>document.write(id);</script>' te staan.
[size=xsmall]Toevoeging op 07/11/2013 14:03:51:[/size]
Dylan Zoethout op 07/11/2013 13:52:26
Het is maar 1 video per keer, hoe doe ik zoiets?
Wat heb je al, al naar een ajax call gekeken wat ik zei?
Merk op:
- Een aantal functies heb ik niet. Ik heb een aantal dingen weggelaten uit jouw code, specifiek om te zorgen dat deze code werkt; gewoon alles copy/pasten naar een leeg index.php bestand
- Dus, onderaan mijn code zie je hoe de Ajax call gebeurt.
Jij moet dan maar zorgen dat jouw functionaliteit terug in mijn code wordt gepuzzled (of omgekeerd :) )
<?php
// ajax verzoek
if(!empty($_GET['ajax'])) {
// Als je hier bent, komt dit van een Ajax verzoek. Alles wat we hier echo'en komt terug naar javascript.
// merk op: eerste video = $_POST['ids'][0]; tweede video = $_POST['ids'][1]; ...
// Jij kan dus $_POST['ids'] gebruiken om in de database te zetten
// bericht sturen terug naar javascript:
echo 'Berichtje van de server. print_r($_POST, 1) = <pre>' . print_r($_POST, 1) . '</pre>';
exit;
}
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
var searchResults = new Array();
var searchIds = new Array(); // array met de id's van de resultaten
function search(query) {
var url = "https://gdata.youtube.com/feeds/api/videos";
var data = {"q":query, "alt":"json", "max-results":"10", "v":"2", "orderby":"relevance", "format":"5"};
$.getJSON(url, data, function (data) {
var items = [];
var index = -1;
$.each(data.feed.entry, function (key, val) {
try {
index++;
var videoID = val.media$group.yt$videoid.$t;
var video = { "id" : videoID,
"thumbnail" : val.media$group.media$thumbnail[1].url,
"title" : val.title.$t,
"uploader" : val.author[0].name.$t //,
//"length" : secondsToHMS(val.media$group.yt$duration.seconds),
//"views" : numAddCommas(val.yt$statistics.viewCount)
};
// ik heb die twee functies secondsToHMS() en numAddCommas() niet, ik negeer dit even.
searchResults[videoID] = video;
searchIds.push(video.id);
var html = "<a href='javascript:selectVideo(\"" + video.id + "\")' class='result clearfix'>" + // ik heb selectVideo() niet, dit zal niet werken bij mij
"<img src='" + video.thumbnail + "' alt='' />" +
"<div class='details'>" +
"<span>" + video.title + "</span><br />" +
"By: " + video.uploader + "<br />" +
"</div>" +
"</a>";
$('#container').append(html);
} catch (e) {
return "continue";
}
});
// Nu gaan we die items naar de server sturen met Ajax
$.ajax({ // begin verzoek
url: 'index.php?ajax=1',
data: {ids: searchIds},
type: 'post',
success: function(data) { // Als de server terug is met het verzoek, wordt dit uitgevoerd. variabele data bevat de echo van de server.
// we steken die data de messages div
$('#messages').html(data);
}
});
});
}
</script>
<style>
#messages, #container {
max-height: 350px;
overflow: auto;
border: 1px solid grey;
}
</style>
<input onchange="search(this.value)" placeholder="search">
<div id="container"></div>
<div id="messages"></div>