ugrás a tartalomhoz

PHP-Javascript: $GET-tel kapott elem átalakítása számmá

Pal_ur · 2005. Jan. 4. (K), 19.17
Üdv,

A gondom a következő: ha nyitok js-sel egy popup ablakot, át kell adnom egy számot bele. Ezt URL-ből átadom, és tényleg, az új ablakban a $_GET-ben meg is jön.

Ha azonban az új ablak fejében található script-tel, pontosabban a window.opener.location.href-tel vissza szeretném adni az eredeti ablaknak, hogy frissíthessem, akkor alapból semmit nem ad vissza. Ha parseInt-tel próbálkozom, akkor pedig NaN-t (gondolom not a number-t) ad vissza. Mit tegyek, hogy működjön? Próbálkoztam ezzel natúron, a parseInt-tel, meg Number-rel.

Valami ilyen a kód:
a első ablakban:
javascript:OpenNewWindow('edit.php?fhid=85217&ftid=920', 400, 420);

... és ettől meg is nyílik az új ablak, mert van ilyen függvényem. Ez OK.

És a nyitott ablakban:
<script language="javascript">
function kuld() {
    var url1 = 'index2.php?op=view&ftid=';
    var url2 = parseInt(<? echo $_GET['ftid']; ?>);
    window.opener.location.href = url1 + url2;
}

function ellenor() {
    if(document.form2.sorszam.value == '')
        {
        alert('[....]');
        document.form2.sorszam.focus();
        }
}
</script>

... és az url2 sorba bele is íródik a példában adott 920. Tehát idáig is OK.

Valamint az új ablakban található form elküldésekor:
echo '<script language="javascript">';
echo 'kuld();window.close();'; //
echo '</script>';


Ami az első ablakba megjön, az meg így néz ki:

index2.php?op=view&ftid=NaN
 
1

Miért kell a parseInt?

Poetro · 2005. Jan. 5. (Sze), 10.26
Csak egy egyszerű kérdésem van. Miért kell a függvényedbe a parseInt, mikor úgyis egész számot írsz bele a függvénybe?
--------
Poetro
2

Nincsen tippem...

Pal_ur · 2005. Jan. 5. (Sze), 10.55
...csak küzdöm, meg próbálkozom. Ha nem rakok bele parseInt-et, akkor meg 0 érkezik meg, holott a nyitott ablak fejlécében még megvan a számérték az url végén...

Pál_úr
3

Biztos?

T.G · 2005. Jan. 5. (Sze), 11.28
Biztos, hogy jót nézel? Triviális hiba szokott lenni, de nem is ritka, hogy nem ugyanazt a fájlt nézed, mint amit futtatod.

<script language="javascript">
function kuld() {
    var url1 = 'index2.php?op=view&ftid=';
    var url2 = parseInt(920);
    alert( url1 + url2 );
}
kuld();
</script>
Ez a kód nálam a várt eredményt adja, és nem is láttom benne, hogy hol lehetne a probléma...
4

Igen

Pal_ur · 2005. Jan. 5. (Sze), 11.48
Valóban, addig nekem is jó, ha kézzel beleírom a 920-at. Ha viszont a $_GET-ből veszi, akkor hiába van ott, a javascript-ben, ha azt mondom neki, hogy
var url2 = <?php $_GET['ftid']; ?> + 1;

az alert-ban csak az lesz, hogy
[...] &ftid=1


Ha lekérem a script forrását, akkor benne van...

Pál_úr
5

igen? nem? nemtudom!

kmm · 2005. Jan. 5. (Sze), 12.11

<?php $_GET['ftid']; ?>
<!--helyett-->
<?=$_GET['ftid']?>
<!--vagy-->
<?php echo $_GET['ftid']; ?>
--
üdv: kmm...
6

OK, bocs...

Pal_ur · 2005. Jan. 5. (Sze), 12.36
Az egy _itteni_ sajtóhiba. köszi. A forrásban benne van...

Pál_úr
7

Extra infó még...

Pal_ur · 2005. Jan. 5. (Sze), 12.45
Ha így írom,
var url2 = '<?php echo $_GET['ftid']; ?>';

akkor ugyan oda kerül a '920' pl., de nem jelenik meg az alert()-ben.

Ha így:
var url2 = <?php echo $_GET['ftid']; ?>;

akkor ugyan a forrásban úgy tűnik, mintha ott lenne, de a Firefox javascript hibával megáll, mégpedig a következő szöveggel:

Error: syntax error
Source File: http://xxx.xxxxx.xx/edit.php?op=editing
Line: 9, Column: 11
Source Code:
var url2 = ;
-----------^


Egészen misztikus.

Pál_úr
8

$_GET['ftid'] ???

T.G · 2005. Jan. 5. (Sze), 12.53
Szerintem ez nem annyira misztikus, inkább mégiscsak mást nézel....
A var url2 = parseInt(); értéke természetesen NaN.
és még természetesebben a var url2 = ; hibás utasítás.
Azaz egyszerűen nincs $_GET['ftid']

Ugye kódolás közben a figyelmeztetéseket is kiírod? :)
9

nálam így megy:

kmm · 2005. Jan. 5. (Sze), 12.53

<script language="javascript">
function kuld() {
    var url1 = 'index2.php?op=view&ftid=';
    var url2 = parseInt(<?=$_GET['ftid']?>);
    window.alert( url1 + url2 );
}
kuld();
//persze, csak ha van $_GET['ftid']
</script>
--
üdv: kmm...
10

Feladom :(

Pal_ur · 2005. Jan. 5. (Sze), 14.17
Mindent végignyálaztam, minden javaslatot megfogadtam, minden warningot kiírattam, de nekem nem megy. Egyzserűen átalakítom, hogy ez ne kelljen bele, és 2 nap múlva visszatérek rá.

Mindenesetre mindenkinek minden segítséget köszönök.

Pál_úr