Konuyu görüntüle
IUCODERS FORUM > Programlama > PHP > php dhtml aras? de?i?ken problemi
Yazar
fratcashtime


avatar

Kayıt: 19.01.2006
10.08.2006-11:25 #9340
if(parseInt(this.value)==2){<? yarat($counter,2);?>}

burada ben olayı anlatayım herhangi bir event sonunda yukarki durumu verdim eğer event in değeri 2 ise 2 ile ilgili olan php fonk unu çağırıyorum ama buradaki sorun bunu dinamik yapabilmek yani 2 yerine bi değer verelim örneğin $x onu yollasın fonksiyona o kontrolü nasıl yapabilirim önerisi olan varsa bekliyorum teşekkürler(denediğim yöntemler if li denedim her biri için bi if ama if sınırı 60 mış 500 tane olmalı burada ayrıca if deki 2 yerine echo ile değişken yazıp örn:<? echo $x;?>veya $x yerine 2 koyduğumda yine anlayamıyor 2 koyduğumda yanlış değer diyor-tabi parseInt(this.value) yu 2 ye getirerek test ediyorum bunları)










Yazar
fratcashtime


avatar

Kayıt: 19.01.2006
10.08.2006-12:10 #9341
<html>
<script language="JavaScript">

</script>
<?php

$MyVar1 = "?><script language=javascript>document.write('56');</script><?php";
$MyVar1 = str_replace("?>", "", $MyVar1);
print $MyVar1."<br><br>";

$MyVar2 = "?><script language=javascript>document.write('5');</script><?php";
$MyVar2 = str_replace("?>", "", $MyVar2);
print intval($MyVar2);
?>
</html>


şöyle bi şeyler bulabildim javascript değişkenini php ye atmak için ama örneğin sayı verdiğimde 56 ile 5 verdim 56 direkt string olarak basılıyıor ben de onu intval olarak ikincisinde görüldüğü gibi denedim ama bu programın ekran çıktısı
56
0

şeklinde oldu şu numarayı nasıl atarım çözemedim(document write da '5' ve 5 aynı sonucu veriyor onu da denedim)









Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
10.08.2006-12:47 #9343
php bilmiyorum ama sorundan anladığım kadarıyla senin değişken türleriyle problemin var. print sadece string yazıyorsa ona veriyi sadece string cinsinden vermen lazım. integer verirsen olmaz beklemediğin bir sonuçla karşılaşabilirsin. Html'den gelen değerlerin de neredeyse hepsi string dir. karşılaştırdığın değerlerin de aynı cinsten olması lazım ilk mesajda string ile integer karşılaştırıyorsun gibi duruyor.
Değişken tanımlamanın gerekmediği dillerde böyle problemlerle çok sık karşılaşılıyor ve her zaman hatanın bu nedenle ortaya çıktığı anlaşılamayabiliyor. Bu nedenle sakıncalılar bence.





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
bilgekayik


avatar

Kayıt: 12.01.2006
12.08.2006-01:39 #9364
arkadaşım sen php de değişkene direkt kocaman bi satır yazmışsın
MyVar1 içinde "?><script language=javascript>document.write('56');</script><?php" böyle bi değer war sen bunu print ettiğinde aslında php tamamını yazdırıyor ama sen ekranda sadece 56 kısmını görüyorsun. ikincide ise bunu in olarak değerlendir diyorsun ama php napsın sen adama kocaman bir satır gönderiyorsun. intval fonksiyonunun özelliği string in içindeki sayıların değerini döndürmektir. intval fonksiyonu sadece girien stringin en başında bulunan sayıları sana döndürür eğerki başında bir harf war ise direkt olarak sana 0 döner..
sanırsam sen söle bişi yapmak istiyorsun. javascriptte document.write ile bişiler yazıp bunu php ye değerlendirtmek istiyon. ama o böle bi şekilde olmaz. senin verdiğin string i bir şekilde temizletmen lazım. mesela en basit yerinde olsam bunu nası yapardım.. bi sayi dizisi tanımlardım içinde 0...9 sayılar bulunan. sona javascriptte yazdığım stringi baştan sona tarar sayı değerlerini değerlendirir diğerlerini silerdim.. eğer yapmak istediğin böle bişi ise belki şu bi işine yarar..

<html>
<?php
$MyVar2 = "?><script language=javascript>document.write('55');</script><?php";
$sayi=array("0","1","2","3","4","5","6","7","8","9");

for($ss=0;$ss<strlen($MyVar2);$ss++){
if(!in_array($MyVar2[$ss],$sayi)){ $MyVar2[$ss]="";}
}

print intval(trim($MyVar2));

?>
</html>

kolay gelsinnn

applauseapplauseapplause





BiLGEONLiNE.NET ?
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb