Beste leden,

Ik loop nu tegen een ernstige probleem aan.

Via JQuery wordt een id gemaakt, en resultaat komt dan zo uit:
var html = '{0}'; 
$("#id").html(html.format(video['id']));


Nu wil ik die ID in een PHP variabele toepassen dus zou je dit moeten krijgen:
$id = 'deID';



Enkel werkt het niet op die manier, weet iemand de juiste manier?


Alvast bedankt!
Ik dacht dat het wel op de manier kon van -Michael:


script.js:
var deID = document.write(video['id']);

<?php
/*
* JS variabele opslaan in PHP variabele $string
*/
$id = "<script>document.write(deID);</script>";
?>
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
Hoe zou ik het anders kunnen zoen om alsnog die ID te bemachtigen?
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.

Hertog Jan op 07/11/2013 13:31:50

Een nieuwe ajax call met php maken met de opgehaalde video's


Het is maar 1 video per keer, hoe doe ik zoiets?
Michael - op 07/11/2013 13:49:11

[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?

Okay; dit is ongeveer wat je wil.

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>
Hertog Jan op 07/11/2013 14:02:47

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.

Klopt. Werkt alleen voor echo. Excuses :)

Reageren