2

可能重复:
如何从 JavaScript 中访问 PHP 变量?

我试图将一个变量从 mySQL 传递给 PHP,然后传递给 JavaScript 以对其执行一些数学运算,然后将结果显示在特定区域的页面上(在<p>分配给它的特定 ID 的元素中)。这是可能的还是有更简单的解决方案?

谢谢!

我已经知道如何将变量从 MySQL 获取到 PHP,只是不知道之后该怎么做。

这是我阅读回复后更新的代码。仍然无法正常工作,但我确定我做错了什么!

<p id="p_id"><?php echo $price; ?></p>
<input type="radio" group="radio_group" value="Reduce 10%" onclick="radio_click();" />

<script type="text/javascript">
var price = <?php echo $price; ?>;

function radio_click() {
var target = document.GetElementById('p_id');
var final_number; // this will be variable your store the final number in

final_number = price * .9;
target.innerHTML = final_number;

}
</script>
4

3 回答 3

2

简而言之,您必须将变量<script>作为 JavaScript 友好格式(引号和其他内容)的字符串传递给标记。

<?php

$variable = 5;
$javaScriptAccessible = '
    <script type="text/javascript">
        var javaScriptAccessible = "'. $variable . '";
    </script>
';

echo $javaScriptAccesible;

此外,你可以 JSON 它:

<?php

$variable = 5;
$javaScriptAccessible = '
    <script type="text/javascript">
        var javaScriptAccessible = '. json_encode($variable) .';
    </script>
';

echo $javaScriptAccessible;

使用 JSON,引号将自动附加。

在这里您可以看到两者的实际效果:http ://codepad.viper-7.com/Jyfw31

更新:

这里有更精致,我认为更好理解的例子:http://codepad.viper-7.com/1cloyB
你唯一要做的就是在你的radio按钮/元素上使用它。

我强烈建议使用 JSON,因为它实际上代表JavaScript Object Notation,它可能包含地球上每一种编程语言中的库,并且专门设计用于将 JS 数据从一个环境传递到另一个环境。

http://php.net/manual/en/function.json-encode.php在这里您可以看到您可以传递的多个选项,以便以不同的方式呈现它。

于 2012-11-20T19:20:33.847 回答
0

要将数据从 PHP 传递到 JavaScript,只需echo它。例如,假设您想在消息框中显示数据:

$data="something";
echo "<script>";
// Do the maths
echo 'var = ' . $data . ' + 1';
echo 'document.write("<p id=\"someID\">" + var + "</p>");' // PHP code writing Javascript code to write HTML code. Wow.
echo "</script>";

如果要在单击单选按钮时显示数据:

<input type="radio" onClick="someFunction();">
<?php
echo "<script>function someFunction() {";
// Do the maths
echo 'var = ' . $data . ' + 1';
echo 'document.write("<p id=\"someID\">" + var + "</p>");' // PHP code writing Javascript code to write HTML code. Wow.
echo "}</script>";
?>

*编辑:如果<p>标签已经存在,使用document.GetElementById(\"someID\").innerHTML = var;而不是document.write("<p id=\"someID\">" + var + "</p>");.

于 2012-11-20T19:20:26.217 回答
0

只需将 PHP 中的变量输出到<script>项目中。<p>然后根据您的计算设置您的 innerHTML 属性。您可以将其放入一个函数中,然后从单选按钮的 onclick 中调用它。

<p id="p_id"><!-- Your value will be inserted here --></p>
<input type="radio" group="radio_group" value="some_value" onclick="radio_click();" />

<script type="text/javascript">
var your_number = <?php echo $php_number; ?>;

function radio_click() {
    var target = document.GetElementById('p_id');
    var final_number; // this will be variable your store the final number in

    // do your math here using your_number variable

    target.innerHTML = final_number;

}
</script>
于 2012-11-20T19:27:17.710 回答