ugrás a tartalomhoz

PHP tömb átadása JavaScriptnek

whiteman0524 · 2009. Okt. 30. (P), 16.19
Üdv !

Azt hiszem a cím önmagáért beszél. Meg lehet ezt valahogy oldani ? Mert nagy szükségem lenne rá, hogy egy PHP -s tömböt/mátrixot átadhassak valahogy egy JavaScript függvénynek.

A segítséget előre is köszönöm.
 
1

generálás vagy json?

winston · 2009. Okt. 30. (P), 16.36
nem tudom, hogy pontosan hol akarod elérni a dolgot. amennyiben az oldal generása során, akkor akár a javascript kódba is belegeneráltathatod php-vel. ha mondjuk ajax, akkor érdemes lehet a php-vel json választ visszaadni.
2

Igen oldalgenerálásnál....

whiteman0524 · 2009. Okt. 30. (P), 18.11
De ha simán átadom akkor nem működik...Mondjuk erre számítottam is...Tehát például így természetesen nem jó hogy :

<?php

$tomb = array(1, 2, 3, 4, 5);

print "<input type='button' onclick='csinalvalamit($tomb);'>";

?>

Csak mutatom hogy mit szeretnék. Tehát a PHP-s tömböt paraméterül adni egy JavaScript függvénmynek.

Szóval a kérdés még áll. Hogyan lehetne ezt megoldani ?
3

json_encode

Poetro · 2009. Okt. 30. (P), 19.42
<?php
$tomb = array(1, 2, 3, 4, 5);

print '<input type="button" onclick="csinalvalamit('. json_encode($tomb) .');">';
?>
4

Tökéletes....

whiteman0524 · 2009. Okt. 30. (P), 23.42
Köszönöm :)
5

Fordítva?

aeternum · 2009. Nov. 3. (K), 21.23
Egy js változó értékét hogyan veheti fel egy php változó?
6

Elküldöd?

Poetro · 2009. Nov. 3. (K), 23.08
Mondjuk elküldöd a PHP-nak cookie-ban, GET-ben, POST-ban.
7

Köszönöm!

aeternum · 2009. Nov. 3. (K), 23.35
Elküldöm!
:)
8

csak nem megy :(((

aeternum · 2009. Nov. 6. (P), 20.08
Egy JS kód generálja az időt. (Azért JS, mert űrlapon is szeretném használni. "name=egyedi")

<script language="JavaScript" type="text/javascript">
var d=new Date();
var monthname=new Array("Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December");

var dayname=new Array("Vasárnap","hétf&otilde;","kedd","szerda","csütörtök","péntek","szombat");
var TODAY = "<b>" + d.getFullYear() + ". " + monthname[d.getMonth()] +  " " + d.getDate() + ".           " + dayname[d.getDay()] + "</b>";

</script>


Aztán egy űrlap bekéri, hogy akarook-e megadni egyedi időpontot

<table>
  <tr>
    <td>
      <form method="get">
        Egyedi mérés:
        <input name="egyedi" type="text" size="5" maxlength="5" value="" onFocus="if(this.value=='') this.value=d.getHours()+':'+d.getMinutes();" onChange="submit"/>
      </form>


Majd, még ezen a cellán belül értéket adok a $meres_ideje változónak.

<?php
  $most_ora=(date(H)+1).":00";
  // global $meres_ideje;
  if (!isset($_REQUEST['egyedi_name']))
    {$meres_ideje=$most_ora;
      $layer_szoveg = "<script language=\"JavaScript\" type=\"text/javascript\">";
      $layer_szoveg.= "document.getElementById(\"um_MSG\").innerText=\"Mérés ideje : \"";
      $layer_szoveg.= $meres_ideje;
      $layer_szoveg.="</script>";
      parse_str($layer_szoveg);
    }
    else
    {$meres_ideje = $_REQUEST['egyedi_name'];
      $layer_szoveg = "<script language='JavaScript' type='text/javascript'>";
      $layer_szoveg.= "document.getElementById('um_MSG').innerText='Egyedi mérés ideje : '";
      $layer_szoveg.= $meres_ideje;
      $layer_szoveg.="</script>";
      parse_str($layer_szoveg);
    }
      unset($_REQUEST['egyedi']);
?>
</td>


és reményeim szerint, ha beírta az egyedi mérés időpontját, ha nem, akkor is valaminek meg kéne jelennie abban a következő egyik cellában, ami ez:

<td>
  <span id="um_MSG">&nbsp;</span>
</td>
</tr>
</table>


Oszt mégse nem.
:(

Miért? Hogyan?

Az if-ben azért van kétfajta megközelítés a szöveg összerakására, mert kísérleteztem, hátha vmelyik jobb, mint a másik.

Függetlenül mindettől. Amit szeretnék: html input mező értékét átadni php változónak, majd az értéket kiíratni egy cellába. Layerrel vagy anélkül...

Köszi előre is!
:)
9

AJAX vagy GET / POST

Poetro · 2009. Nov. 6. (P), 20.59
Vagy a form elküldése után írod ki a táblázat megfelelő celláját PHP-vel, vagy AJAX-szal küldesz egy kérést a szervernek mire az visszaadja neked a cellába írandó értéket, és te azt JavaScripttel kiírod.

A legfontosabb, amit tudni érdeme, hogy a JavaScript a böngészőben fut, míg a PHP a szerveren (és valószínűleg másik gépen is), és amennyiben az egyik nem küld a másiknak adatot valamilyen formában addig a másik nem tud vele foglalkozni.

A tartalom fenti feldarabolását nem értem, azt se hogyan épül fel az oldal, melyik tartalom melyik fájlban van benne.

Amit én elképzelek folyamat:
  1. PHP megjeleníti a formodat.
  2. Elküldöd a formot a PHPnek.
  3. A PHP visszaad egy új oldalt az elküldött adatoknak megfelelően.

Ez virtuálisan 2 oldal megjelenítését jelenti.
10

egy oldalon mindent

aeternum · 2009. Nov. 6. (P), 21.44
Lehetőleg...

www.autonkresze.hu/zene/furge/um/index.php

Igaz, a háttér DB nélkül nem megy...
:(
11

AJAX

Poetro · 2009. Nov. 6. (P), 23.04
Akkor meg kell tanulnod AJAX-szul.
12

arra nincs idő!

aeternum · 2009. Nov. 6. (P), 23.32
Ráadásul még a php se megy, meg JS se!
:))

Legalábbis úgy, hogy szeretném!

Akkor legyen az, hogy JS-ben megcsinálom és a végén _request-ből kiolvasom a php-nak?
Végül is...
:)
13

php vs.json vs. JS

aeternum · 2009. Nov. 11. (Sze), 23.28
Bár meglehet, tudatlanságom egyre nagyobb mélységeit tárom föl, dehát csak érdekel a kérdés és a válasz még inkább.
:)

Azt már átbeszéltük, hogy a JS böngészőben, a php szerveren fut.
Szeretnék erőforrást spórolni, ezért - lehetőleg-, minél kevesebb egyéb függvénytárat beilleszteni a programba. Másik topicban mutattam képet: nem véletlenül 100*200 körüli a képek mérete, okostelefonon vagy PDA szerű adatgyűjtőn is fog futni az alkalmazás.

A PECL ilyen kiegészítés lenne. Ha már mindenképp kommunikálni kell a szerverrel(JS történések kacifántos megfogalmazása php számára), akkor mi a haszon abból, hogy php helyett, mellett PECL függvénytárat (asszem, a json is az) használok.
Nem értem az előnyét. Csak sejtem.
Köszi a választ és a türelmet!
:)
14

php helyett pecl?

gex · 2009. Nov. 12. (Cs), 17.30
a pecl az nem php helyett van, hanem azt egészít(het)i ki. honnan jött ez most neked, milyen új funkcióra van szükséged?
15

Szerver / Böngésző

Poetro · 2009. Nov. 12. (Cs), 17.49
Az a böngészőnek teljesen mindegy milyen szerver motor gyártja neki a HTML-t, attól nem lesz lassabb a kliens oldalon, legfeljebb tovább tart a HTML generálása, de valószínűleg elhanyagolhatóan, ahhoz képest, hogy mennyit nyersz. A JSON a PHP 5.2 része, mindenfajta plugin vagy PECL plugin nélkül, korábbi PHP verziókban (4.3+) persze kell neki a PECL plugin.