2015-03-27 4 views
1

У меня есть html-скрипт с переменной javascript внутри него, эта переменная я передал затем в php-файл, чтобы увеличить его на 1. Моя проблема в том, я знаю, как я передал бы его обратно в html-файл, чтобы затем отобразить его, также я не знаю, как переменные работают на веб-сайте, если мне нужно сохранить переменную каким-то образом, чтобы убедиться, что это ту же обновленную переменную, что и при выходе из сайта.Как передать переменную javascript из php обратно в javascript

HTML сценарий:

<script type="text/javascript"> 

       var nrVar= 1; 
       document.getElementById("nrVar").innerHTML = nrVar; 
       document.getElementByID("nrVar").value = nrVar; 

</script> 

PHP скрипт:

<?php 

    $nrVar= $_POST['nrVar']; 

    $nrVar= round((int)$nrVar+1); 

?> 
+0

Я не уверен, что вы пытаетесь сделать точно, но чтобы ваши переменные сохранялись, вам нужны, например, сеансы или база данных на стороне сервера или что-то вроде локального хранилища на стороне клиента. – jeroen

+0

Я думаю, что вы ищете 'AJAX' – Daan

ответ

0

Предполагая, что $ _POST отправляется нормальный покориться и не запрос AJAX. Я бы генерировать сценарий вместе с остальной частью сайта с помощью PHP, чтобы определить значение переменного:

<script> 
var nrVar = parseInt('<?php echo $_POST['nrVar']; ?>'); 
</script> 

parseInt здесь, чтобы убедиться, что мы получим целое значение, $ _POST санитарное также будем хорошая идеей, чтобы предотвратить XSS или даже яваскрипт инъекции непосредственно.

+0

Итак, я бы использовал этот код в той же функции javascript, а затем он получит его из php-скрипта? – Sm00rf9000

+0

этот код будет содержать синтаксические ошибки. смотрите свои цитаты –

1

Вы должны сохранить свой номер javascript в поле формы, отправить форму в PHP-скрипт, там номер увеличен, а затем отправить его обратно в сеансе. Далее приведен код:

increase1.php

<?php 
// GET THE NUMBER FROM PHP. THE FIRST TIME IT'S JUST 1. NEXT TIMES 
// THE NUMBER COMES IN SESSION INCREASED FROM PHP SCRIPT. 
session_start(); 
if (IsSet($_SESSION["increased"])) 
    $increased = (int)$_SESSION["increased"]; 
else $increased = 1; 
?> 
<html> 
    <head> 
    <title>Jose Manuel Abarca Rodriguez</title> 
    <script type="text/javascript"> 

// ASSIGN VALUE TO JAVASCRIPT VARIABLE. 
var my_number = <?php echo $increased; ?>; 

// SEND THE FORM TO INCREASE2.PHP. 
function clik() { 
document.getElementById("the_number").value = my_number; 
document.getElementById("frm").submit(); 
} 
    </script> 
    </head> 
    <body> 
    My number is = <script type="text/javascript">document.write(my_number);</script> 
    <br/> 
    <button onclick="clik()">Increase my number</button> 

<!-- FORM TO SEND NUMBER TO PHP. --> 
    <form method="post" action="increase2.php" 
      id="frm" style="display:none"> 
     <input type="text" id="the_number" name="the_number"/> 
    </form> 

    </body> 
</html> 

increase2.php

<?php 
session_start(); 
$num = (int)$_POST["the_number"]; 
$_SESSION["increased"] = ++$num; // !!! NEVER $num++ !!! 
header("Location: increase1.php"); // BACK TO FIRST PAGE. 
?> 

Создайте два TextFiles с заданными именами (increase1.php и increase2.php), откройте свой браузер и запустите localhost/enlarge1.php.

+0

Большое спасибо за ваш ответ. У меня уже есть форма, где я передаю переменную вместе с несколькими другими переменными, как вы можете видеть в сценариях ниже, сценарий, который вы создали, выглядит так, как будто он работает, Мне просто сложно понять, как я буду реализовывать функции в своих собственных сценариях. HTML: http://pastie.org/private/4yrlpqfgpjc3ipiwluqq PHP: http://pastie.org/private/cz1bnriprqdhjyzr8jqcwa Переменная еще называется nrVar. – Sm00rf9000

+0

Если вы хотите, вы можете принять ответ. –

Смежные вопросы