Kezdőoldal » Számítástechnika » Weblapkészítés » Javascrit php kommunikacio,...

Javascrit php kommunikacio, mieer tnem jo?

Figyelt kérdés

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'); ?>

}

});



2021. márc. 5. 21:32
1 2
 1/14 A kérdező kommentje:

Ez itt a createcookie után nem fut le..

<?php echo $_COOKIE['1_opt_id']; ?>


De miért nem akar?

2021. márc. 5. 21:32
 2/14 anonim ***** válasza:

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).

2021. márc. 5. 21:56
Hasznos számodra ez a válasz?
 3/14 A kérdező kommentje:

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.

2021. márc. 5. 22:33
 4/14 anonim ***** válasza:
100%

"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(),...)

2021. márc. 5. 22:54
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:

"Neem. Jquery fut le elsőnek, azon belül php ki íratások stb!"


Pedig tényleg de, #4 nem mond butaságot

2021. márc. 6. 01:12
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
Ne a jQuery-vel bohóckodj míg a js sem megy.
2021. márc. 6. 06:38
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:
Ez a kódrészlet nem úgy működik, ahogy te elképzeled. Hanem úgy, hogy először a PHP létrehozza a 1_opt_id nevű sütit, a webszerver kiszolgálja az oldalt a kliensnek (ekkor a süti már ott van a http válaszban), majd a Javascript kód megintcsak létrehozza a sütit. Ahogy #4-es írja.
2021. márc. 6. 07:00
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:

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.

2021. márc. 6. 21:00
Hasznos számodra ez a válasz?
 9/14 A kérdező kommentje:

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

2021. márc. 6. 21:10
 10/14 anonim ***** válasza:

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).

2021. márc. 6. 21:25
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!