2013-02-21 3 views
0

В настоящее время я работаю над созданием простого скрипта php для редактирования некоторых аспектов игры в JavaScript. При попытке передать переменные из сценария в игру с использованием форм переменные данные, похоже, не передаются. На данный момент сценарий предназначен для редактирования значения RDG одного игрока в игре. Код выглядит следующим образом:Переменная PHP переменной Javascript

script.php:

<html> 
<head> 
<title>Form</title> 
</head> 
<body> 

<form method="get" action="tron2.html"> 


<p>What are your player 1's RGB values: 
<input type="text" name="color1r" /> Red 
<input type="text" name="color1g" /> Green 
<input type="text" name="color1b" /> Blue </p> 

<input type="submit" value="Submit" /> 

</form> 

</body> 
</html> 

И часть кода в JavaScript, где переменные присваиваются

<?php 

$color1r = $_POST["color1r"]; 
$color1g = $_POST["color1g"]; 
$color1b = $_POST["color1b"]; 


?> 


<HTML> 
    <HEAD> 
    <TITLE> 
     Tron2 
    </TITLE> 
    <script> 
        var x = "<?= $color1r; ?>"; 
        var y = "<?= $color1g; ?>"; 
     var z = "<?= $color1b; ?>"; 
        //more code for the game 

При запуске игры, цвет игрока остается черным, поэтому значения x, y, z должны быть равны 0. Есть ли причина, по которой значения не передаются?

+4

'<=' 'уже подразумевает echo'. Не уверен, что делает '

+0

Я удалил эхо, и у него все еще есть такая же проблема. –

+0

Если это еще не работает, это может быть что-то другое. – Popnoodles

ответ

6
<form method="get" ...> 

и

$color1r = $_POST["color1r"]; 

не являются друзьями.

<form method="post" ...> и $color1r = $_POST["color1r"]; друзья, и
<form method="get" ...> и $color1r = $_GET["color1r"]; также друзья.

Также <?= echo должен быть ошибкой. Использовать <? echo $string или <?=$string

+0

Ударьте меня в это: D –

+0

Я изменил метод «method = get "" to "post", но кажется, что проблема все еще существует, ничего не меняется –

+0

Мне нравится ваше описание :) – Mike

0

Помимо тангенциального POST/GET mixup, всегда используйте json_encode() для вывода переменных PHP в JS-коде.

echo без экранирования или других функций экранирования генерирует недействительный и/или небезопасный код.

<script>var jsvalue = <?php echo json_encode($phpvalue) ?>;</script> 

В вашем конкретном случае:

<form method="post" action="tron2.html"> 

и

<script> 
    var x = <?= json_encode($color1r) ?>; 
+1

Зачем это нужно/как это исправить проблему, которая, очевидно, представляет собой сборку данных для получения/публикации данных? –

+0

Это не ответ на вопрос и не соответствует действительности. эхо без экранирования или других функций экранирования ** может генерировать недействительный и/или небезопасный код. – Popnoodles

+1

@popnoodles, говорящий «неправда», немного сурова; вы педантичны о счастливом безопасном случае в очень распространенном наиболее вероятном уязвимом шаблоне. – Kornel

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