2015-07-01 2 views
0

Я хочу обновить данные $_SESSION, используя сообщение jQuery.
В конце концов я found this script как основа для «системы».

Я создал следующие два файла в качестве тест:

t1.php:

<?php 
session_start(); 

/* After refresh, src should be visible */ 
echo print_r($_SESSION); 
?> 

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script> 

<img class="foo" src="img.jpg" /> 
<img class="foo" src="img2.jpg" /> 
<img class="foo" src="img3.jpg" /> 

<script> 
$("img.foo").onclick(function() 
{ 
    // Get the src of the image 
    var src = $(this).attr("src"); 

    // Send Ajax request to backend.php, with src set as "img" in the POST data 
    $.post("/t2.php", {"img": src}); 
}); 
</script> 

t2.php:

<?php 
session_start(); 

$_SESSION['imgsrc'] = $_POST['img']; 
?> 

К сожалению, это не производит путь Src после обновления t1.php.
$_SESSION['imgsrc'] сохраняет пустым.

Я пробовал все, может быть, для получения чего-то?
Надеюсь, вы сможете помочь!

ответ

1

Вы забыли прикрепить документ, готовый обработчик + это не onclick но click, добавьте в ваш код:

<script> 
$(document).ready(function(){ 
$("img.foo").click(function() 
{ 
    // Get the src of the image 
    var src = $(this).attr("src"); 

    // Send Ajax request to backend.php, with src set as "img" in the POST data 
    $.post("/t2.php", {"img": src}); 
}); 
}); 
</script> 
+0

Я бы также посоветовал использовать '$ ("img.foo"). on ('click', function() {...}); ', чтобы избежать этого материала – shanehoban

+0

Вы неправильно обрабатываете json – Toumash

+0

Действительно @Toumash Я просто выбрал этот пример из jqu ery веб-сайт кажется действительным: '$ .post (" test.php ", {name:" John ", time:" 2pm "});' – Daan

0

Может быть, я вижу JSON везде, но это лучший способ сделать связь. Правильная обработка с PHP JSON будет

$post= file_get_contents('php://input'); 
$json= json_decode($post,true); // true means json will be assoc array 

Тогда ваш сценарий может быть изменен:

<?php 
session_start(); 

$post= file_get_contents('php://input'); 
$json= json_decode($post,true); 
$_SESSION['imgsrc'] = $json['img']; 
?> 

При этом он будет Дворк наверняка

$.ajax({ 
    type: "POST", 
    url: "/t2.php", 
    data: {"img": src}, 
    dataType: "application/json" 
}); 
+0

Спасибо за предложение. Является ли это лучшим методом обработки данных сообщения? Будет ли Google немного больше. :) – beta990

Смежные вопросы