Передача данных jquery между страницами php - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть обработчик класса php, который я использую для создания вывода html для моей страницы упражнений group.php.Однако этот вывод (массив элементов) вызывается с помощью Jquery / AJAX и добавляется на страницу.Тем не менее, есть некоторые значения данных, которые не отображаются, потому что они будут переданы на страницу упражнение-single.php.Как я могу собрать эти значения данных с помощью jquery, загрузить их в значение php и сохранить их в переменной $ _Session, чтобы упражнение-single.php могло отображать эти переменные после того, как пользователь нажал на тег href.Извините за длинный пост, но это лучшее, что я могу сделать, чтобы объяснить, что я пытаюсь сделать.

Exercise.class.php

class Exercises {

public $vidSource;

public function displayExercises($result) {        
    if ($result->num_rows > 0) {
        // output data of each row
        while ($row = $result->fetch_assoc()) {                                         
             echo   "<div class='media'>" .
                    "<div class='media-object pull-left'>" .
                        "<a href='exercise-single.php'><img src='".$row["ImgResource"]."' class='img-responsive' alt='curl'></a>" .
                    "</div>" .
                    "<div class='media-body'>" .
                        "<h4 class='media-heading'><a href='#'>".$row["Exercise"]."</a></h4>" . 
                    "</div>" .
                "</div>";
$vidSource = $row["VidResource"];
        }
    } else {
        echo "<img src='https://media.giphy.com/media/cwTtbmUwzPqx2/giphy.gif' class='img-responsive'>"; 
        echo "<h3 class='media-heading'>No workouts exist for this muscle yet.<br>Please try another one.</a></h3>";
    }
 }
}
?>

ExerciseHandler.php

 <?php

include 'Exercises.class.php';
include 'dbconnect.php';

if(isset($_POST['muscle'])){

$muscle =$_POST['muscle']; 

$connect = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT * FROM exercises WHERE Muscle = '".$muscle."'";
$result = $connect->query($sql);

$exercises = new Exercises();

$exercises->displayExercises($result); 

}
?>

loadExercises.js

var muscle_id;

function getMuscle(clicked_muscle){
muscle_id = clicked_muscle;


$.post("ExerciseHandler.php", {
  muscle: muscle_id
},
function(data, status){
    $("#exercise-list").html(data);
});

}

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Если вы хотите получить глобальный доступ к данным на всех страницах за сеанс, вы должны создать сеанс, подобный этому, в , в то время как в блоке вот так,

        if ($result->num_rows > 0) {
        // output data of each row
        while ($row = $result->fetch_assoc()) {
             $_SESSION["name"] = $row["column_heading"];//create session                           
             echo   "<div class='media'>" .
                    "<div class='media-object pull-left'>" .
                        "<a href='exercise-single.php'><img src='".$row["ImgResource"]."' class='img-responsive' alt='curl'></a>" .
                    "</div>" .
                    "<div class='media-body'>" .
                        "<h4 class='media-heading'><a href='#'>".$row["Exercise"]."</a></h4>" . 
                    "</div>" .
                "</div>";
$vidSource = $row["VidResource"];
        }
    } else {
        echo "<img src='https://media.giphy.com/media/cwTtbmUwzPqx2/giphy.gif' class='img-responsive'>"; 
        echo "<h3 class='media-heading'>No workouts exist for this muscle yet.<br>Please try another one.</a></h3>";
    }
 }

это будет работать.и не забудьте начать сеанс в ваших файлах php.помните, вы должны начинать сеанс на каждой странице ваших php-файлов, в которой вы собираетесь установить или получить сеанс.Вы можете сделать это, просто добавив

session_start ();

0 голосов
/ 14 февраля 2019

// Обработчик

 echo $exercises->displayExercises($result); 

// Класс упражнений

  public function displayExercises($result) {        
   if ($result->num_rows > 0) {
      return json_encode(
       array(
       'status' => 'success',
       'data' => $result->fetch_assoc())
      );
   } else {
      return json_encode(
         array(
           'status' => 'error',
           'data' => array(
             'url' => "https://media.giphy.com/media/cwTtbmUwzPqx2/giphy.gif",
             'class' => 'img-responsive',
             'prompt' => 'Please try another one.'
           )
         )
      );
    }
  }

// Jquery Here

$.ajax({
  url : "ExerciseHandler.php",
  method : "POST",
  success : function(response){
    var result = JSON.parse(response);
    if(result.status == 'error'){
      $('img').attr('src',result[0].url);
      $('img').attr('class',result[0].class);
      $('h3').text(result[0].prompt);
    }else{
      $.each(result.data,function(index,value){
          // do the html append thing here
      });
    }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...