来自我的代码
<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>
我希望它会打印一些我放的值,但它没有显示任何内容。 我错了什么?
答案 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 ....