将变量从JavaScript传递给PHP

时间:2015-11-11 09:08:22

标签: javascript php

我正在尝试使用php post方法将变量从JavaScript函数 - 选定的文本传递到同一页面:

if (isset($_POST['u_name']))
{
    echo $_POST['u_name'] . '</p>';
}
    echo "<script type='text/javascript'>";
    echo "var var1 = 0; var range = window.getSelection ();";
    echo "function gst () { var range = window.getSelection (); alert (range.toString ()); var1 = range.toString ();}";
    echo "document.write('<form method=\'post\'>');";
    echo "document.write('<p>selected area:<br />');";
    echo "document.write('<button onclick=\'gst ()\'  type=\'submit\' name=\'u_name\' value = \'' + var1 + ' \' />Button</button>');";
    echo "document.write('</form>');";
    echo "alert (interesting);";
    echo "</script>";

按下按钮后,所选页面文本是正确的:使用alert(range.toString())检查它,但是,发布了var1变量的初始值 - 0。 什么可能导致它以及如何传递从javascript函数通过post方法获得的值?

安东

2 个答案:

答案 0 :(得分:0)

如果要将JavaScript变量传递给PHP,则必须使用Ajax请求。

PHP是服务器端,而JavaScript是客户端。这意味着所有PHP代码都在任何JavaScript被触发之前完成。您可以使用PHP操作JavaScript,但如果您想使用JavaScript操作PHP,请使用Ajax call

答案 1 :(得分:0)

那是因为您在页面加载时设置了value属性。

您可以在按钮点击时动态更改它。将您的一行替换为:

echo "document.write('<button onclick=\"this.setAttribute(\'value\', var1); gst()\"  type=\'submit\' name=\'u_name\' value = \'' + var1 + ' \' />Button</button>');";

注意this.setAttribute