JQuery kullanarak bir PHP $ _SESSION ['var'] ayarlama

5 Cevap php

Ben jQuery kullanarak bir PHP $ _SESSION değişkenini ayarlamanız gerekir. Kullanıcı bir görüntü tıkladığında EĞER ben php bir oturum değişkeni olarak bu görüntü ile ilişkili bilgilerin bir parça kaydetmek istiyorum.

Ben bir php sayfası veya işlevi çağıran ve sorgu dizesi bilgi bu parça ekleyerek yapabilirsiniz düşünüyorum.

Herhangi bir fikir. Google sayesinde biraz yardım bulduk.

thanks mike

5 Cevap

Yalnız jQuery aracılığıyla yapamaz; Eğer Ajax bir arada (eğer jQuery ile yapabilirsiniz) ve bir PHP arka uç gerekir. Çok basit bir versiyonu, bu gibi görünebilir:

HTML:

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

Javascript:

$("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("/backend.php", {"img": src});
});

PHP (backend.php):

<?php
    // do any authentication first, then add POST variable to session
    $_SESSION['imgsrc'] = $_POST['img'];
?>

Başka bir PHP sayfasında PHP işlevi koyarak deneyin, ve değişkeni ayarlamak için bir AJAX çağrısı kullanmak isteyebilirsiniz.

Eğer bir jQuery Ajax arıyoruz nedir. Ve sonra sadece kurulum bir php sayfası isteği işlemek için.

(backend.php) dahil eklemeyi unutmayın

session_start ();

-Taylor http://www.hawkessolutions.com

Ben de (. Burada hiçbir büyük anlaşma Luke Dennis'in çözeltisine benzer) kendime göre bir "php session değer setter" çözümü olarak tasarlanmış, ama benim oturum değerini ayarladıktan sonra, benim ihtiyaçları "başka. Php dosyanın üzerine atlıyor" edildi. Tamam, benim jquery kodu içinde, yaptım ... Ama bir şey çok işe yaramadı ...

Benim sorunum tür kolay oldu:

-Sonra "$. Yayınlamak" sizin değerleri küçük. Php dosya üzerine, sen atlama gerçekleştirmek, bazı "başarı / başarısızlık" dönüş değeri, ve SADECE BU BAŞARI DEĞER OKUMA SONRASI için beklemeniz gerekir. . Sadece hemen sonraki büyük php dosyanın üzerine atlamak, sizin oturum değeri php oturumlar zamanı altyapısı üzerine set haline değil olabilir, ve $ _SESSION ["my_var"] yaparken muhtemelen "boş" okuyacak; Hedef. php dosyası.

. Benim durumumda, bu durumu düzeltmek için, benim jQuery $ post kodunu bu şekilde değiştirildi:

$.post('set_session_value.php', { key: 'keyname', value: 'myvalue'}, function(ret){
    if(ret==0){
        window.alert("success!");
        location.replace("next_page.php");
    }
    else{
        window.alert("error!");
    }
});

Tabii ki, "set_session_value.php" dosyası, 'echo "0" dönmelidir; 'Veya' echo "1"; '(Veya değeri ne olursa olsun başarı gerekebilir).

Selamlar.