Передать переменную href onclick в функцию на PHP

Я пытаюсь передать переменные, хранящиеся в ссылках href, в функцию. Im может определить переменные из результатов запроса. Моя проблема заключается в передаче его в функцию после нажатия на гиперссылку. Это мой код:

<?php
    foreach($pdo->query('SELECT * FROM sk_courses ORDER BY courseID') as $row)
    {
      echo "<a href='#' onclick='hrefClick(".$row['courseID'].");'/>".$row['courseID']."</a><br>";
    } 
?>

Это функция:

<script> 
function hrefClick($course){
      $newCourse=$course;
}
</script>

3 ответа

  1. PHP-код :

    <?php
        foreach($pdo->query('SELECT * FROM sk_courses ORDER BY courseID') as $row)
        {
          echo "<a href='#' onclick='hrefClick(".$row['courseID'].");'/>".$row['courseID']."</a><br>";
        } 
    ?>
    

    Функция должна быть как:

    <script> 
    function hrefClick(course){
          // You can't define php variables in java script as $course etc.
          var newCourse=course;
          alert(newCourse);
    }
    </script>
    
  2. Мы будем использовать два файла здесь. Из file1.php onclicking ссылку мы отправим данные через Ajax в file2.РНР. Это решение на основе Jquery.

    //file1.php
    <?php
    foreach($pdo->query('SELECT * FROM sk_courses ORDER BY courseID') as $row){
        echo '<a href="javascript:void()" data-href="'.$row['courseID'].'"/>'.$row['courseID'].'</a><br>';
    }
    ?>
    <script>
        $('a').click(function(){
            var hrefData = $(this).attr('data-href');
            if (typeof hrefData !== typeof undefined && hrefData !== false) {
                alert(hrefData);
                //or You can post the data
                $.post( "file2.php", { courseid:hrefData} );
            }
        });
    </script>
    

    Вы можете получить результат на file2.РНР

    //file2.php
    <?php
    if(isset($_POST['courseid'])){
        $newCourse = $_POST['courseid'];
    }
    ?>
    
  3. Я смог найти способ сделать это? Это кажется довольно простым. Это то, что я придумал.

    <?php
        foreach($pdo->query('SELECT * FROM sk_courses ORDER BY courseID') as $row){
          echo  "<form name='course".$row['courseID']."' action='index.php' method='GET'/>";
          echo "<a href='javascript: document.course".$row['courseID'].".submit();'/>".$row['courseID']."</a>";
          echo "<input type='hidden' name='courseID' value='".$row['courseID']."'/><br>";
          echo "</form>";
        } 
      ?>