我正在尝试使用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方法获得的值?
安东
答案 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
。