在没有提交按钮的表单的上下文中,我不明白为什么$ _POST变量没有设置.这是我的代码:
<?php
$view="blablabla";
?>
<form class="" method='POST' accept-charset="UTF-8" action='index.php'>
<p>
<textarea rows="4" cols="60" name='article' id='article' WRAP=SOFT>
<?php
echo $view;
?>
</textarea>
</p>
<p>
<input type="button" name='do1' id='do1' value="do 1"/>
<input type="button" name='do2' id='do2' value="do 2"/>
</p>
</form>
<?php
var_dump("POST :",$_POST);
?>
Run Code Online (Sandbox Code Playgroud)
一旦我点击其中一个按钮,var_dump是否应该显示$ _POST的值?
不,输入类型必须是submit(<input type="submit"/>)才能提交表单.必须将POST请求发送到您的PHP脚本,以便在$ _POST数组中填充任何值:)
编辑:他们不具有可提交,但在上面的代码中,与上的按钮没有外部触发的情况下,你需要提交按钮:)
如果您在按钮单击时使用JavaScript/Ajax将POST请求发送到PHP,则需要执行类似的操作:
if (isset($_POST['x'])) {
var_dump($_POST);
exit;
}
Run Code Online (Sandbox Code Playgroud)
这样脚本就不会返回页面的HTML(即你的表单) - 如果你要张贴到另一个页面,这不是问题:)
下面是一些示例jQuery代码,用于在按钮单击时发送一些POST数据(不会给你确切的代码,你必须根据你的需要修改它!)
$('#my_button').click(function(){
$.post('myfile.php', data, function(response) { //the var 'data' is the POST data you're sending
// handle response here, the data being in the response variable
});
});
Run Code Online (Sandbox Code Playgroud)