POST值未在javascripts中显示

时间:2011-02-07 19:01:47

标签: php javascript forms post

来自我的代码

<script type="text/javascript">
function getValue()
{
    console.log("<?php echo $_POST['input_value'] ; ?>") ;
    return false ;
}
</script>

<form id="request_form" action="" name="request_form" method="POST" >
    <input id="input_value" type="text" size="45" name="input_value"></br>
    <button class="button" id="btForm" onclick="return getValue()" >submit</button>
</form>

我希望它会打印一些我放的值,但它没有显示任何内容。 我错了什么?

4 个答案:

答案 0 :(得分:4)

您的表单实际上并未提交到php页面。它只是调用getValue,它还没有任何内容。

你想要做的事情有两半,而你的错误在于你把它们混合在一起。第一个是服务器端,使用PHP。提交表单时,您应该使用:

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

这会刷新页面(因为表单操作为空白),使用PHP可以读取您的POST值并将其与页面的其余部分一起打印出来。页面加载完成后,PHP不再参与,不会影响行为。

正如您现在所拥有的,当您加载页面时,它看起来像这样:

<script type="text/javascript">
function getValue()
{
    console.log("") ;
    return false ;
}
</script>

由于首次加载页面时POST值不存在,因此发送到浏览器的javascript看起来就是这样 - 没有值可以打印。单击该按钮将执行此处显示的getValue()。

答案 1 :(得分:3)

PHP是服务器端,在页面加载到浏览器之前完成。首次加载时,当时没有$_POST,因此日志为空。

提交表单时,您正在调用其中没有文本的console.log函数,然后返回FALSE,因此表单实际上从未提交过。

您需要在表单标记中设置action属性以指向用于处理$_POST数据的PHP页面,或者您需要使用AJAX发布表单。

答案 2 :(得分:0)

您无法从javascript中写出实际的服务器端代码,并希望它能够在客户端执行。

答案 3 :(得分:0)

function getValue() {
     console.log(document.request_form.input_value.value) ;
     return false ; 
} 

可能有意义,在JS(客户端)执行getValue()的那一刻 - 不涉及PHP(服务器端),因此无法回显$ _POST ....