user1536365
user1536365

Reputation: 25

Passing a Javascript or PHP Variable to another page

I have been trying to figure this out for two days and have had no luck.I am using PHP with Javascript and I am trying to access a Javascript variable on another Page.

Here is my Javascript code which is only alerting the user what taskID is...

<script>
function myFunction(taskID)
{
alert("Task #" + taskID);

}
</script>

Here is my PHP

//select all tasks for this report
            $tasks = mysqli_query($conn,"SELECT taskID, hoursSpent, workDone, plannedTasks FROM Tasks where reportID = $report_id AND projID = $proj_id");
            $task_count = 1;
            while($row1 = mysqli_fetch_array($tasks))
            {
                $taskID = $row1['taskID'];
                //display the task information
                echo "<strong id='tasks'>Task #" . $task_count . "</strong>";
                echo " - <a href = '#' onclick ='myFunction($taskID)'>Edit</a><br>";


                echo "Hours Spent: " . $row1['hoursSpent'] . "<br><br>"; 
                echo "Accomplished: <br>" . $row1['workDone'] . "<br><br>";
                echo "Planned for Next week: <br>" . $row1['plannedTasks'] . "<br>";
                echo "<br>";
                $task_count++;
            }

how can i pass that taskID to another page so i can edit the task information?

Thanks!

Upvotes: 1

Views: 3402

Answers (2)

Elias Van Ootegem
Elias Van Ootegem

Reputation: 76395

Just change this:

echo " - <a href = '#' onclick ='myFunction($taskID)'>Edit</a><br>";

To

echo " - <a href = 'editTask.php?id=".$taskID."'>Edit</a><br>";

And you're there. Just make sure that, in the editTask.php file, you check the id:

$editID = (int) $_GET['id'];//<-- $editID will hold an int, that is the id of the record the user wanted to edit.

Quite apart from that: good to see you're using an up-to-date extension for mysql. Nevertheless, code like this:

mysqli_query($conn,"SELECT taskID, hoursSpent, workDone, plannedTasks FROM Tasks where reportID = $report_id AND projID = $proj_id");

Will leave you vulnerable for injection attacks. Please do look into prepared statements.

$tasks = mysqli_query($conn, 'SELECT taskID, hoursSpent, workDone, plannedTasks FROM Tasks WHERE reportID = ? AND projID = ?');
mysqli_stmt_bind_param($tasks, 'i', $reportID);//replace i with s if should be a string etc...

Once your building queries based on client side data (which you will be doing with this: using the url to get the id...), it's the easiest way to protect yourself against a very common threat.

check this link
This one
And of course, this one to understand what injection is

Upvotes: 2

mplungjan
mplungjan

Reputation: 177693

Like this

<script>
function myFunction(taskID) {
  location="nextpage.php?task="+taskID;
  return false;

}
</script>



echo " - <a href = '#' onclick ='return myFunction("'.$taskID.'")'>Edit</a>

Or simpler

echo " - <a href='nextpage.php?task='.$taskID.'">Edit</a>

Upvotes: 0

Related Questions