JQuery & PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dylan Zoethout

Dylan Zoethout

07/11/2013 12:45:49
Quote Anchor link
Beste leden,

Ik loop nu tegen een ernstige probleem aan.

Via JQuery wordt een id gemaakt, en resultaat komt dan zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$id = 'deID';



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


Alvast bedankt!
 
PHP hulp

PHP hulp

26/11/2024 00:05:19
 
Michael -

Michael -

07/11/2013 12:51:11
Quote Anchor link
Je wilt video['id'] in $id ? Waar komt die eerste vandaan?
Ik denk dat het niet anders kan dan PHP in je jQuery te gebruiken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<script>
var html = '{0}';
$("#id").html(html.format(video['id']));
<?php $id=?>document.write(video['id']);<?php ; ?>
</script>

Zoiets zal je dan krijgen.
Gewijzigd op 07/11/2013 12:51:34 door Michael -
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 12:53:00
Quote Anchor link
die javascript zit in een php file, dat werkt dan toch niet?
 
Joakim Broden

Joakim Broden

07/11/2013 13:04:24
Quote Anchor link
Je kunt gewoon javascript gebruiken in een PHP file.

Alleen PHP is Server-Side en Javascript Client-Side dit gaat dus volgens mij nooit werken. PHP word eerst uit gevoerd en daarna pas de Javascript. Javascript -> PHP kan niet (tenzij je met redirect werkt, url parameters, of formulieren) maar PHP -> Javascript kan wel.

Wat is je bedoeling, misschien is er een andere oplossing?
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 13:08:08
Quote Anchor link
Momenteel heb ik dus met <div id='deID'></div> de id weergegeven uit het javascript bestand.

Nu wil ik dat id in een PHP variabele hebben.

Enkel weet ik niet hoe ik dat kan doen.

Want als ik dat in een PHP variabele heb is mijn script dus klaar.
 
Joakim Broden

Joakim Broden

07/11/2013 13:12:04
Quote Anchor link
Maar Dylan waar kom die ID vandaan? En wat wil je doen? Wat is de bedoeling?
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 13:14:46
Quote Anchor link
Ik heb een soort YouTube plalist website, die ID moet ie dan als ware in de database gooien, en daar heb ik die variabele bij nodig.

Die ID haalt ie uit de search API van YouTube.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
        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 = [];
            $.each(data.feed.entry, function (key, val) {
                try {
                    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)};
                    searchResults[videoID] = video;
                  
                    var html =  "<a href='javascript:selectVideo(\"{0}\")' class='result clearfix'>" +
                                "<img src='{1}' alt='' />" +
                                "<div class='details'>" +
                                "<span>{2}</span><br />" +
                                "By: {3}<br />" +
                                "{4} | {5} views" +
                                "</div>" +
                                "</a>";
                    items.push(html.format(
                                videoID,
                                video["thumbnail"],
                                video["title"],
                                video["uploader"],
                                video["length"],
                                video["views"]));
                } catch (e) {
                    return "continue";
                }
            });
Gewijzigd op 07/11/2013 13:17:45 door Dylan Zoethout
 
Kris Peeters

Kris Peeters

07/11/2013 13:20:31
Quote Anchor link
Als je informatie hebt verkregen in javascript,
en je wil die informatie kenbaar maken aan de databese, dan heb Ajax nodig.


Toon eens wat je hebt, toon die playlist.
Dan tonen we hoe je die via Ajax kan versturen
minuutje; ik zal eens zien
Gewijzigd op 07/11/2013 13:30:59 door Kris Peeters
 
Michael -

Michael -

07/11/2013 13:21:25
Quote Anchor link
Dylan Zoethout op 07/11/2013 12:53:00:
die de javascript zit in een php file, dat werkt dan toch niet?

Je kunt javascript,html,css,e.d. gebruiken in een PHP file.
Of het mooi is, is wat anders :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
/*
* Tekst opslaan in PHP variabele $str
*/

$str = 'Hallo wereld';

/*
* PHP string $str opslaan in JS variabele str
*/

?>

<script>
var str = '<?php echo $str; ?>';
</script>
<?php
/*
* JS variabele opslaan in PHP variabele $string
*/

$string = "<script>document.write(str);</script>";

echo $string;
?>

Omdat je al gebruik maakt van Json is hier een veel mooiere oplossing voor te bedenken.
Gewijzigd op 07/11/2013 13:25:04 door Michael -
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 13:21:59
Quote Anchor link
Ik heb enkel een manier nodig om het in een variabele te krijgen van PHP bestand, het is een one page.
 
Joakim Broden

Joakim Broden

07/11/2013 13:31:50
Quote Anchor link
Een nieuwe ajax call met php maken met de opgehaalde video's
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 13:35:31
Quote Anchor link
Ik dacht dat het wel op de manier kon van -Michael:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
script.js:
var deID = document.write(video['id']);

<?php
/*
* JS variabele opslaan in PHP variabele $string
*/

$id = "<script>document.write(deID);</script>";
?>
Gewijzigd op 07/11/2013 13:35:56 door Dylan Zoethout
 
Joakim Broden

Joakim Broden

07/11/2013 13:40:33
Quote Anchor link
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
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 13:46:39
Quote Anchor link
Hoe zou ik het anders kunnen zoen om alsnog die ID te bemachtigen?
 
Michael -

Michael -

07/11/2013 13:49:11
Quote Anchor link
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.
Gewijzigd op 07/11/2013 15:23:13 door Michael -
 
Joakim Broden

Joakim Broden

07/11/2013 13:49:59
Quote Anchor link
Hertog Jan op 07/11/2013 13:31:50:
Een nieuwe ajax call met php maken met de opgehaalde video's
 
Dylan Zoethout

Dylan Zoethout

07/11/2013 13:52:26
Quote Anchor link
Het is maar 1 video per keer, hoe doe ik zoiets?
 
Joakim Broden

Joakim Broden

07/11/2013 14:02:47
Quote Anchor link
Michael - op 07/11/2013 13:49:11:
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.



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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<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.

Toevoeging op 07/11/2013 14:03:51:

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?
Gewijzigd op 07/11/2013 14:03:16 door Joakim Broden
 
Kris Peeters

Kris Peeters

07/11/2013 14:15:50
Quote Anchor link
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 :) )

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?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>
Gewijzigd op 07/11/2013 14:20:30 door Kris Peeters
 
Michael -

Michael -

07/11/2013 14:56:44
Quote Anchor link
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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<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 :)
Gewijzigd op 07/11/2013 15:22:51 door Michael -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.