Dostęp do tablicy php w sekcji javascript.

0
<button id="up" >Up</button>
<button id="left">Left</button>
<button id="down">Down</button>
<button id="right">Right</button>

<script type="text/javascript" src="jquery-3.2.1.js"></script>
<script type="text/javascript">

var btn=[0,0,0,0];

document.onkeydown = function (e) 
{ 
  e = e || window.event;  

   if (e.keyCode == '38') 
    {
         btn[1]=1;
         alert(btn);
    }
    else if (e.keyCode == '40') 
    {
        btn[3]=1;
        alert(btn);
    }
    else if (e.keyCode == '37') 
    {
       btn[0]=1;
       alert(btn);
    }
    else if (e.keyCode == '39') 
    {
       btn[2]=1;
       alert(btn);
    }
};

document.onkeyup = function (e) 
{ 
  e = e || window.event;  

   if (e.keyCode == '38') 
    {
         btn[1]=0;
         alert(btn);
    }
    else if (e.keyCode == '40') 
    {
        btn[3]=0;
        alert(btn);
    }
    else if (e.keyCode == '37') 
    {
       btn[0]=0;
       alert(btn);
    }
    else if (e.keyCode == '39') 
    {
       btn[2]=0;
       alert(btn);
    }
};

$(document).ready(function(){
refresh();
});

function refresh()
{
   setTimeout(function(){
	refresh();
   /*do something*/
   },100);
}
</script>
<?php $arr = array(0,0,0,0); ?>

Mamy takie śmieszne cudo. Po każdym kliknięciu lub puszczeniu klawisza, chciałbym zrobić z tablicą niesamowite rzeczy. Chciałbym wywołać funckjcę php która zapisze wartości z tablicy do pliku .txt. A zeby to uprościć chciałbym przekazać wartości z tablicy btn(JS) do tablicy w arr(php). Na razie tablice są w jednym pliku, docelowo będą w różnych. Ewentualnie czy JS pozwala na zapis do pliku po stronie Klienta?

1

PHP działa po stronie serwera, JS (w tym przypadku) po stronie klienta - nawet jeśli masz oba skrypty w jednym pliku (co jest słabe) to nie mozesz komunikować ich bez pośrednictwa sieci. Musisz z JSa wysłać request po http do skryptu PHP.

Ewentualnie czy JS pozwala na zapis do pliku po stronie Klienta?

Możesz zapisywać w plikach cookies, localStorage, sesionStorage lub IndexedDB, możesz też zainicjalizowac download pliku. Zapisywać i odczytywać czegokolwiek gdziekolwiek nie możesz.

0

albo przekazać tą tablicę jako json do JSa podczas jego wywołania.
Edit teraz widzę, że to z JSa do PHP a nie na odwrót.

0

Mam coś takiego ale niestety nic nie zapisuje:

function save() {
    $.ajax({
      url: "test2.php",
      data: {btn: btn},
      context: document.body
    }).done(function() {
        alert("File has been written");
    });
}

i php

<html>
<head>
<title>Page Title</title>
</head>
<body>

<?php
$btn = $_POST['btn'];
 
$fp = fopen('data.txt', 'w');
fwrite($fp, "TEST");
fwrite($fp, $btn);
fclose($fp);

?>
</body>

Zapisuje do pliku tylko string "TEST" a nie tablicę btn. 

1 użytkowników online, w tym zalogowanych: 0, gości: 1