Passing data from PHP to JavaScript: methods, their pros and cons, and how to implement them

Поделиться
HTML-код
  • Опубликовано: 6 июн 2024
  • PHP for Beginners course: ➤ davehollingworth.net/phpy
    PHP MVC course: ► davehollingworth.net/phpmvcy
    CodeIgniter 4 course: ► davehollingworth.net/codeigni...
    If you have a variable in PHP, and you need to use its value in JavaScript in the browser, how do you get the value of this variable from PHP to JavaScript?
    In this video we'll look at various solutions to achieve this, from writing out the value into the JavaScript or DOM in the original request, making sure we escape it, to using a cookie, and using Ajax. We'll also look at their advantages and disadvantages.
    Which method you choose depends on how much data there is, and how complex your page is: whether it's a simple PHP script or a more complex web applications.
    Code shown in the video:
    gist.github.com/daveh/56fd2fa...
    00:00 Intro
    00:17 The problem
    01:21 Simple echo
    03:11 Escaping
    05:00 JSON encoding
    06:10 Hidden field
    07:58 Meta tag
    09:04 Data attribute
    10:30 Cookie
    13:20 Ajax request
    16:14 Summary
  • НаукаНаука

Комментарии • 82

  • @nadimalaa8961
    @nadimalaa8961 Год назад +4

    I will look back on those days where I am starting to learn PHP, and remember how Dave Hollingworth made me love PHP.

  • @ashikmehermobin9926
    @ashikmehermobin9926 2 года назад +3

    I think You are one of the most underrated applied content creator in you tube

  • @codingzen869
    @codingzen869 3 года назад +13

    Your channel is absolutely underrated. You are incredibly good at explaining with simplicity and deserve way more bigger audience.

  • @Artem977471
    @Artem977471 3 года назад +3

    Thanks a lot, Dave. You are incredible teacher!

  • @lammabing6401
    @lammabing6401 Год назад +1

    Really clear and concise demonstrations & explanations. Appreciated. Thanks.

  • @Isra-p1
    @Isra-p1 3 года назад +1

    Wow Dave this video is very well done, thorough and informative as usual, thank you.

  • @abedabdesselem9491
    @abedabdesselem9491 2 года назад +3

    Very informative and straight forward, thanks a lot.

  • @fatimaadreeta
    @fatimaadreeta 2 года назад +1

    An absolutely beautiful video. Any form of thank you would be an understatement 🙏🙏💚💚

  • @ozgrymn
    @ozgrymn 3 года назад +1

    Very nice and clean explanation, awesome, thank you!

  • @israrguldurrani
    @israrguldurrani Год назад +1

    It is a very helpful video. Thank you Dave!

  • @NoahNobody
    @NoahNobody 3 года назад

    Oww, so many neat tricks. And that meta tag assignment blew my mind.

  • @codeclassroom
    @codeclassroom 3 года назад +1

    I have learned a lot in this video. You are very clear and nice.

  • @mounir101
    @mounir101 2 года назад +1

    Thanks so much Dave, we got the idea.

  • @johnpaul5836
    @johnpaul5836 2 года назад

    Superb tutorial. The best I have seen on this subject.

  • @qwerasdf1727
    @qwerasdf1727 2 года назад

    really helpful tutorial! thanks a lot for your job!

  • @constantine9074
    @constantine9074 Год назад +1

    Ive been searching for this !!!!!!!

  • @pellepels50
    @pellepels50 Год назад +1

    Very good explained. Thanks

  • @pitaji_badewale
    @pitaji_badewale 2 года назад +1

    Thanks brother for this amazing content

  • @abat_dauletbaev
    @abat_dauletbaev 3 года назад

    Thank you very much for information, really useful.

  • @kevin_neugebauer
    @kevin_neugebauer 7 месяцев назад

    thanks! very great tutorial!

  • @hiajayy
    @hiajayy 3 года назад

    Nice explanation.thank you🙏

  • @javierrodriguez4218
    @javierrodriguez4218 3 года назад

    Very comprehensive!

  • @tiksong7613
    @tiksong7613 Месяц назад +2

    Thank you so much.

  • @med3060
    @med3060 3 года назад

    thank you so much Dave !

  • @fraidoonhu9284
    @fraidoonhu9284 3 года назад +1

    Wow thanks, you are great.

  • @ademineshat
    @ademineshat 3 года назад

    Very useful 👍 thanks

  • @Dexter101x
    @Dexter101x 4 месяца назад

    Dayam, never knew how to code cookies, and setting the json to the header, a new thing for me as well

  • @Alextaggart4908
    @Alextaggart4908 Год назад +1

    That was helpful

  • @anurajms
    @anurajms Год назад +1

    thank you

  • @technoking536
    @technoking536 9 месяцев назад +1

    Great!

  • @itouswenqtenrih9018
    @itouswenqtenrih9018 2 года назад +1

    Thank you

  • @JuanBotes
    @JuanBotes 2 года назад

    thanks for sharing your knowledge \o/

  • @emperoroftheearth3215
    @emperoroftheearth3215 3 года назад

    Thanks

  • @mounir101
    @mounir101 2 года назад

    I've subscribed to get more lessons.

  • @NedumEze
    @NedumEze 2 года назад +1

    Wow! Amazing!
    Thank you so much sir. Can I believe it's also possible the other way? Javascript to PHP?

    • @dave-hollingworth
      @dave-hollingworth  2 года назад +1

      Yes, if you send any HTTP request to a PHP script using Ajax, you can send data to a PHP script on the server

  • @emmanuellyons6827
    @emmanuellyons6827 4 месяца назад

    Please make a video about a social media website like Facebook in php
    Nothing deep, just the basics of getting posts.
    ❤️

  • @pablokaram1411
    @pablokaram1411 3 года назад

    Big fan of all your courses!!!, Dave can you help me with one question please? i need to pass an array from PHP to a script of JS in the same page, to use the array as a value of an object's property inside the JS script, (i try to embedd in the "labels" property of Chart JS an array of information comming from the database) i tried a lot of techniques but i can't succeed in the task, do you have any recomendation?

    • @dave-hollingworth
      @dave-hollingworth  3 года назад +1

      Did the techniques shown in this video not work for you? If not, I would try doing it step by step, first writing out the array from PHP, then making sure JavaScript can access it ok, then try assigning that value to the object property in JavaScript. The browser console can help here to show you any errors in the variable value that might occur.

  • @seeker3794
    @seeker3794 25 дней назад

    How to make all files separate?

  • @AzharUddin-ob7vb
    @AzharUddin-ob7vb 2 года назад +2

    I know this is off topic
    But can you make an video
    How to encrypt url or query parameter in JavaScript and decrypt in php
    Using cryptoJS
    I think no one have created this video and it's very imp to know everyone

    • @dave-hollingworth
      @dave-hollingworth  2 года назад

      Ok will look into it, thank you for the recommendation!

  • @gorgosanma
    @gorgosanma 2 года назад +1

    Very clear and nice video. But I'm finding out how much I hate working with php and javascript. If I want to have 2 separate files to send a value from js to php, let the php process and bring back a variable there's no way to do this. I have to do like this example altogether but it ends up with a monster code in one file. Man, I swear once I finish this project I'm out of php or even coding for good. This is so frustrating!
    Sorry, I needed to vent.

  • @seeker3794
    @seeker3794 25 дней назад

    Can't we have php html and javascript separately? For I have recognized the extension of .html is .php in your video.

    • @dave-hollingworth
      @dave-hollingworth  24 дня назад

      Yes, you can separate them into different files if you like, that's quite common

  • @TheJohcker
    @TheJohcker 2 года назад

    Do you use php framework, what php framework you recommended?
    Thanks.

    • @dave-hollingworth
      @dave-hollingworth  2 года назад +2

      I recommend CodeIgniter, as it's lightweight and simple

  • @kkch980
    @kkch980 Год назад

    In Laravel 9, how to pass a data from controller file to the JavaScript in blade.php view file?

    • @dave-hollingworth
      @dave-hollingworth  Год назад +1

      You can probably just do it the same way as in plain PHP, but instead of using echo, use the blade equivalent to print out a variable, e.g. {{ $name }}

    • @kkch980
      @kkch980 Год назад

      @@dave-hollingworth thank you

  • @fastcontact
    @fastcontact 3 года назад

    you could also use localstorage as another method, too ;)

    • @dave-hollingworth
      @dave-hollingworth  3 года назад +1

      Well, you can only store a value in local storage using JavaScript, so you'd have the same issue - e.g. window.localStorage.setItem("name", "");

  • @mnamihas
    @mnamihas 10 месяцев назад +1

  • @techgensu2039
    @techgensu2039 2 года назад

    sir is it possible to pass query result using ajax fetch()? please give me a sample code

    • @dave-hollingworth
      @dave-hollingworth  2 года назад +1

      One way would be to encode the data in PHP into JSON, for example fetching it as an associative array, then using json_encode to write it out as JSON. You can then read this JSON easily in the client.

  • @pgclecturesworld
    @pgclecturesworld 3 месяца назад

    hi brother i want to some little favour of your. Javascript problem in php. can you help to solve this?

  • @ngabohakiza3988
    @ngabohakiza3988 13 дней назад

    hello i dont know if you ll see this but right now i need help I const get the Post api to work using javascript to post

    • @dave-hollingworth
      @dave-hollingworth  11 дней назад

      What exactly happens? Do you get any error messages? You can use the browser network console (in the developer tools) to see if there are any errors

  • @Edflow720
    @Edflow720 2 месяца назад

    I need the value of a decimal number, this value in decimal is in PHP code, but I need the data in the Script, all this inside the same file, as well as your first examples in this video.
    Can you tell me how to get it?
    I'm not getting any data from the PHP to the Script.

    • @dave-hollingworth
      @dave-hollingworth  2 месяца назад

      The examples shown in the video should work for decimal values - what happens when you try it, do you get any errors?

    • @Edflow720
      @Edflow720 2 месяца назад

      @@dave-hollingworth When I put the PHP variable in the Script, it does not receive the information, even I have put it in several ways and I have printed it in the console, it does not receive any value at all.

    • @dave-hollingworth
      @dave-hollingworth  2 месяца назад

      @@Edflow720 What code are you using to print out the value?

  • @ramonlips9586
    @ramonlips9586 5 месяцев назад

    Which IDE are you using?

    • @dave-hollingworth
      @dave-hollingworth  5 месяцев назад

      Visual Studio Code

    • @ramonlips9586
      @ramonlips9586 5 месяцев назад

      @@dave-hollingworth which theming extensions? Cause yours looks hella clean

    • @dave-hollingworth
      @dave-hollingworth  5 месяцев назад

      @@ramonlips9586 I disabled all the programming assistants, which although useful when coding, are a distraction when teaching. I based it on this: medium.com/@marciobarrios/minimal-user-interface-for-visual-studio-code-2ab849eb6d8e

  • @photoinshot1355
    @photoinshot1355 Год назад

    Excellent tutorial, very well explained, very clearly presented, many thanks I found it very interesting and helpful, especially the last example using a data.php file. You mentioned this is better for large amounts of data but you only gave an example with one variable. I have failed to get it to work with two variables. Being relatively new to JS I tried the obvious:
    $name = "Bill";
    $lastName = "Smith";
    header('Content-Type: application/json');
    echo json_encode($name, $lastName);
    Then
    $name = "Bill";
    $lastName = "Smith";
    header('Content-Type: application/json');
    echo json_encode($name);
    echo json_encode($lastName);
    How could I alter it to work, I'm thinking there must be a simple way, the data I want to use is not really related as in this example I thought I would just try it out.

    • @dave-hollingworth
      @dave-hollingworth  Год назад

      Just to clarify, this is PHP code and not JS code. Try encoding them in an array:
      echo json_encode(["name" => $name, "lastName" => $lastName]);

    • @photoinshot1355
      @photoinshot1355 Год назад

      @@dave-hollingworth Thanks for taking the time to answer my question, I really appreciate it. Having changed the code to: $name = "Bill";
      $lastName = "Smith";
      header('Content-Type: application/json');
      echo json_encode(["name"=>$name,"lastName"=>$lastName]);
      I now get this in the alert message: Hello [object Object]
      When using this as the js script:
      fetch('data.php')
      .then(function(response){
      return response.json();
      })
      .then(function(data){
      alert('Hello '+ data);
      });
      I know I must be missing something really basic here but I would appreciate a nudge in the right direction if possible. Thanks

    • @photoinshot1355
      @photoinshot1355 Год назад +1

      Thanks for anyone else interested I got a working solution by doing the following: let name, lastName =[];
      fetch('data.php')
      .then(function(response){
      return response.json();
      })
      .then(function(data){
      name=data.name;
      lastName=data.lastName;
      alert('Hello '+ data);

      console.log(name);

      }); Many thanks again for a very helpful video.

    • @dave-hollingworth
      @dave-hollingworth  Год назад

      @@photoinshot1355 Thank you for posting your solution!

    • @dave-hollingworth
      @dave-hollingworth  Год назад

      @@photoinshot1355 In the JavaScript, "data" is an object, so try
      alert("Hello " + data.name);

  • @g7k993
    @g7k993 3 года назад

    Mobile device users would appreciate a bigger font ( for the code ~18pt). Was hard seeing the code using my iPhone.

    • @dave-hollingworth
      @dave-hollingworth  3 года назад +1

      Ok, noted! Will look into that for the next video.

  • @indrajitmandal5985
    @indrajitmandal5985 2 месяца назад

    Getting an error:- "Syntax Error: not a valid json"

  • @temirkhanamanbaev42
    @temirkhanamanbaev42 Год назад +1

    Explanation in plain language