Javascrit php kommunikacio, mieer tnem jo?
Sziasztok, ez itt miért nem akar müködni egyszerűen nem fut le a php.
$("#7_opt_lite").css("background-color", "green");
$("#ck_opt_table_1").change(function(){ // Kiválasztja az első optot.
var opt_table_id_1 = $('option:selected', this).val();
var color = $('#1_opt_lite').css("background-color");
if(color == "rgb(0, 128, 0)") // 1. opt - lite max value
{
createCookie("1_opt_id",opt_table_id_1,10);
<?php echo $_COOKIE['1_opt_id']; ?>
document.getElementById("1_opt_value").innerHTML = <?php echo ck_optmax_and_ar(2,2,'lite'); ?>
}
else // 1. opt - pro max value
{
document.getElementById("1_opt_value").innerHTML = <?php echo ck_optmax_and_ar(2,2,'pro'); ?>
}
});
Ez itt a createcookie után nem fut le..
<?php echo $_COOKIE['1_opt_id']; ?>
De miért nem akar?
Mert a Javascript (pontosabban a jQuery) nem "kommunikál" a PHP-vel (se Ajax, se websocket,...).
Mivel - feltételezhetően, mert nem látjuk a teljes kódot - a PHP parancsértelmező szolgálja ki a Javascript-kódot is, így a PHP-kód fut le először (íródik ki a "1_opt_id" nevű süti), majd a Javascript (hozódik létre a "1_opt_id" nevű süti).
Neem. Jquery fut le elsőnek, azon belül php ki íratások stb!
Javascript létrehoz egy cookie-t, majd én azt a cookiet, php-val egyből ki akarom iratni, de valamiért nem engedélyezi.
"Neem. Jquery fut le elsőnek, azon belül php ki íratások stb!"
Téves.
Ha PHP-ból szolgálod ki a Javascript-kódot, akkor először a PHP-értelmező kódja fut le a szerveren, majd a PHP-kód eredménye a Javascript-kódba illesztve adódik át (HTTP-válasz formájában) a kliensnek, ahol a böngészőben fut le a Javascript-kód.
"Javascript létrehoz egy cookie-t, majd én azt a cookiet, php-val egyből ki akarom iratni"
A PHP még a létrehozás előtti állapotot illeszti be a Javascript-kódba.
Ha azonnal ki akarod íratni a süti tartalmát, azt tedd Javascriptből (document.write(), console.log(),...)
"Neem. Jquery fut le elsőnek, azon belül php ki íratások stb!"
Pedig tényleg de, #4 nem mond butaságot
A logikai részét már leírták...
Most kicsit a syntaxisról is írok.
<?php echo $_COOKIE['1_opt_id']; ?>
Itt ki írja a 1_opt_id cookie értékét, ami nem egy JS kód, így megbotlik a JS.
document.getElementById("1_opt_value").innerHTML = <?php echo ck_optmax_and_ar(2,2,'lite'); ?>
Itt nem tudom mit szeretnél ki íratni, de ha nem csak szám amit vissza add a PHP funkció, akkor szintén megbotlik.
Szöveget idézőjelek közé kellene helyezni.
if(color == "rgb(0, 128, 0)")
Javaslom többféle módon is vedd fel.
és ha rgb() akkor nem vesszővel tagold.
A Chrome kezdi száműzni, és kellemetlen meglepetést hozhat.
Talán hexadecimális érték a legjobb, az több mint 20 éve nem változott.
chrome -nál elkezdődött az rgb(n,n,n) és rgba(n,n,n,a) kivezetése.
helyette rgb(n n n) és rgb(n n n / a%) jön.
Jó.. Sütis megoldást inkább hagyom..
Átírtam erre
var opt_table_id_1 = $('option:selected', this).val();
var color = $('#1_opt_lite').css("background-color");
if(color == "rgb(0, 128, 0)") // 1. opt - lite max value
{
$.ajax({
type: "POST",
url: "ck.php",
data: { 'dataString': opt_table_id_1 },
cache: false,
success: function()
{
alert("adad");
}
});
ez itt a php rész
<?php
$stringData = $_POST['dataString'];
echo $stringData;
?>
De mégse jelenik meg, mi lehet a probléma?
És kedves előttem hozzászóló, ezzel <?php echo ck_optmax_and_ar(2,2,'lite'); ?>
csak egy számot küldök vissza, amit a javascript ki írat
Nyomd meg az F12-t, és nézd meg, mi megy PONTOSAN a szerver felé. Ránézésére nekem gyanús, hogy te JSON-t küldesz (ámbár a küldött információ típusát nem adod meg), de a PHP azt nem tudja feldolgozni a $_POST tömbbe.
Ahhoz, hogy a PHP tömbként tudja parsolni, szabványos query stringként kell neki átadnod, azaz field1=value1&field2=value2&field3=value3... formában (függetlenül attó, hogy GET vagy POST http kérésben adod át).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!