-1

My aim is to get the lec_id which is the Button value when the button is clicked and pass it to chapters.php where I use the button value for a SQL query.

Below is part of my code for index.php

<?php
                    $con = mysqli_connect("localhost", "root", "", "lectureHub");
                    if(!$con) {
                        die("Could not connect to MySql Server:" . mysqli_error());
                    }
                    $query = "select * from lectures";
                    $result = mysqli_query($con, $query);
                    if ($result->num_rows > 0) {
                    // output data of each row
                        while($row = $result->fetch_assoc()) {
                            $lec_id = $row['lec_id'];
                            $lec_name = $row['lec_name'];
                            $lec_number = $row['lec_number'];
                            $lec_views = $row['lec_views'];
                            echo "<button id=linkButton name={$row['lec_name']} value={$row['lec_id']} type='button' class='btn btn-outline-primary lecture' onclick='buttonClicked(this)'>
                                        {$row['lec_name']}  
                                    </button> ";
                    }
                    } else {
                        echo "0 results";
                    }
?>

my button onclick function

  function buttonClicked(btn) {
        btn.click_counter = (btn.click_counter || 0) + 1;
        document.getElementById("num_clicks_feedback").textContent = `btn ${btn.getAttribute('name')} has been clicked ${btn.click_counter} times`;
        localStorage.setItem("lecId", btn.getAttribute('value'));
        location.href = 'index.php?action=lec_hub/chapters';
    }

I want to use the Button value here in chapters.php for a SQL query.

<html>
<head></head>
<body>
<?php
    echo "<p id='lecId'></p>";
    $con = mysqli_connect("localhost", "root", "", "lectureHub");
        if(!$con) {
            die("Could not connect to MySql Server:" . mysqli_error());
        }
    $query = "select * from chapters where <<this is where i want to use lecId>> ";
?>
<script>
    function getValue(){
        var lecId = localStorage.getItem("lecId");
        document.getElementById("lecId").innerHTML = lecId;
        var resetValue= 0;
        localStorage.setItem("lecId", resetValue)
    }
    getValue()
</script>
</body>
</html>

  • Local storage only exists on the client, you can't access it in PHP. Use a cookie, or put it in a URL query parameter. – Barmar Jun 02 '22 at 22:09
  • Does this answer your question? [How do I edit PHP variable with JavaScript/jQuery?](https://stackoverflow.com/questions/54079448/how-do-i-edit-php-variable-with-javascript-jquery) – AndrewL64 Jun 02 '22 at 22:32

1 Answers1

1

Welcome to Stack Overflow! As Barmar stated in their comment, you can pass data to a PHP file using URL parameters, or more commonly known as GET parameters. Here's how you do it.

From your file with your button in it, you can create a form like this one:

<form action="chapters.php" method="get">
    <input type="text" name="data" /> <!-- This is the value that will be passed -->
    <input type="submit" value="Button" /> <!-- This is your button -->
</form>

And then from your PHP file, you can get that passed data like this:

echo $_GET["data"]

$_GET is a global PHP array that contains all of the URL parameters sent to the file. you can pass multiple values as GET parameters to a file. You can read all about the $_GET variable here. I hope this helps!

SirFire
  • 90
  • 9