У меня есть сайт с 3 изображениями (стрелками), которые отправляют вас на другую страницу, поэтому:
index.html
-page1.php
-page2.php
-page3.php
Для каждого есть слайдер с начальной загрузкой:
<input id="ex1" data-slider-id='exSlider' type="text" data-slider-min="0" data-slider-max="10" data-slider-step="1" data-slider-value="5" data-slider-handle="triangle" style="width: 100%;"/>
<input id="ex2" data-slider-id='exSlider' type="text" data-slider-min="0" data-slider-max="10" data-slider-step="1" data-slider-value="5" data-slider-handle="triangle" style="width: 100%;"/>
<input id="ex3" data-slider-id='exSlider' type="text" data-slider-min="0" data-slider-max="10" data-slider-step="1" data-slider-value="5" data-slider-handle="triangle" style="width: 100%;"/>
Я хочу отправить значение ползунка на другую страницу PHP, например, если я нажимаю на первом изображении и ползунке в 8, когда я перехожу к page1.php, я хочу видеть номер ползунка.
Из index.html я получил значения ползунка следующим образом:
$(".slider").click(function(){
var sli1 = $("#ex1").data('slider').getValue();
});
Я жестко использую $ _SESSION для хранения значений каждого ползунка, но я не знаю, как его реализовать, потому что способ получить значение ползунка — на Jquery, а вторая страница — на PHP.
Итак, как мне сохранить значение на сайте Jquery, а затем получить доступ через PHP на другом сайте?
Редактировать:
Я не могу получить значения со второй страницы. Моя папка выглядит так:
-index.html
<tr>
<td>
<div>
<p>ABC</p>
<input id="ex1" data-slider-id='Exsliser' type="text" data-slider-min="0" data-slider-max="10" data-slider-step="1" data-slider-value="5"/>
</div>
</td>
<a class="slider" href="slider/slider1.php"><img ></a>
В том же внутри:
$(".slider").click(function(){
$sliderID = $(this).closest('div').find('input').attr('id');
$sliderValue = $(this).closest('div').find('input').data('slider').getValue();
alert($sliderID +' - '+$sliderValue);
//Send values to PHP script that updates them in $_SESSION
$.post("session_val.php",{sliderID:$sliderID, sliderValue:$sliderValue});
});
И в slider1.php:
<?php
session_start();
$val = $_SESSION['ex1'];
echo "<script type='text/javascript'>alert('$val');</script>";
?>
Я положил session_start (); в начале обоих файлов. Файл session_val.php находится в той же папке, что и индекс, но в другой папке, что slider1.php
Для кнопок со стрелками, которые переносят вас на другую страницу, вы можете запустить их с помощью Javascript, используя «onclick». Это позволит вам получить значение ползунка и передать его как переменную GET в URL.
В приведенном ниже коде предполагается, что все страницы находятся в одном каталоге, поэтому используются относительные пути. Вы можете легко адаптироваться к вашей фактической файловой структуре — или использовать абсолютные пути, если это необходимо.
HTML:
<a onclick="get_slider('page2','ex2')">Page 2</a>
JS:
function get_slider(page,sliderID) {
//Get value of specified slider
$slideValue = $("#" + sliderID).data('slider').getValue();
//Build the url, with page name, then slider value passed as parameter
$url = page + ".php?slider=" + $slideValue;
//Send user to the proper page
window.location = $url;
}
PHP:
На странице назначения вы можете получить значение ползунка следующим образом:
<?php $sliderValue = $_GET['slider']; ?>
РЕДАКТИРОВАТЬ: Отражая мой комментарий ниже, забудьте выше материал и используйте вместо этого ajax:
слайдер value.php
Простой скрипт, который принимает две переданные переменные и обновляет связанную переменную $ _SESSION.
<?php
/*** Your database connection string here ***/
//Get passed values
$sliderID = $_POST['sliderID'];
$sliderValue = $_POST['sliderValue'];
//Put them into $_SESSION variable
$_SESSION[$sliderID] = $sliderValue;
?>
Javascript:
$('[data-slider-id]').change(function() {
//Get slider's ID and value
$sliderID = $(this).attr('id');
$sliderValue = $(this).data('slider').getValue();
//Send values to PHP script that updates them in $_SESSION
$.post( "slider-value.php",{sliderID:$sliderID, sliderValue:$sliderValue});
});
Я бы предложил вам обернуть ввод в форму.
<form action="page2.php" method="post">
<input type="range" name="input1">
<button type="submit">Next page</button>
</form>
Таким образом, когда пользователь отправит форму, вы получите доступ к значению во вводе через $_POST['input1']
,
Вы можете использовать аналогичный подход для остальных страниц. Вы в основном реализуете многошаговую форму.