Php Can';我不明白为什么isset不起作用
我有一个按钮,我需要在单击某个函数时调用它,但是由于某种原因,Php Can';我不明白为什么isset不起作用,php,Php,我有一个按钮,我需要在单击某个函数时调用它,但是由于某种原因,isset函数没有看到该按钮被单击 下面是php/html文件中的两行: <input type="submit" id='details' name='details' class="pull-right btn-sm btn-primary" value='Show Details'/> <h4><?php echo $subject_details; ?></h4> 感谢
isset
函数没有看到该按钮被单击
下面是php/html文件中的两行:
<input type="submit" id='details' name='details' class="pull-right btn-sm btn-primary" value='Show Details'/>
<h4><?php echo $subject_details; ?></h4>
感谢所有看这个的人 你可以玩这个。。。可能会有帮助
<!-- head section -->
<script>
window.onload=function(){
var oCol=document.querySelectorAll('input[type="button"]');
for( var b in oCol ) if( b && oCol[b] && oCol[b].nodeType==1 ) oCol[ b ].onclick=function(e){
alert( this.tagName + ' '+this.id+' was clicked...' );
}.bind( oCol[b]);
};
</script>
<input type='button' id='b1' value='Button 1' />
<input type='button' id='b2' value='Button 2' />
<input type='button' id='b3' value='Button 3' />
<input type='button' id='b4' value='Button 4' />
window.onload=function(){
var oCol=document.querySelectorAll('input[type=“button”]”);
for(oCol中的变量b)if(b&&oCol[b]&&oCol[b]。节点类型==1)oCol[b]。onclick=function(e){
警报(单击了this.tagName+''+this.id+);
}.bind(oCol[b]);
};
isset()函数仅适用于输入类型submit。您可以将按钮嵌入到表单中,让页面重新加载到自身中,以获取存储在外部php中的变量。例如:
//in your main.php
<?php
include 'external.php';
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="submit" value="Send">
</form>
<h4><?php echo $subject_details; ?></h4>
//in your external.php
<?php
$subject_details = '';
if(isset($_POST['submit'])){
$subject_details = 'button clicked';
}
?>
//在main.php中
如果没有看到完整的代码示例,我不能确定,但您可能没有在
标记上指定method=“post”
属性。表单默认为method=“get”
,因此您需要使用isset($\u get['details'))
一个有效的例子是:
<form action="" method="post">
<input type="submit" name='details' value='Show Details'>
</form>
<?php
if (isset($_POST['details'])) {
echo $_POST['details'];
} else {
echo 'No post data submitted';
}
这应该是一个提交按钮还是仅仅是一个按钮?从我读到的,它必须是一个提交按钮。现在你让我想知道按钮是否必须在表单中。啊-但是当然你需要访问post,所以你必须提交表单。即使我把它放在表单中,它仍然不起作用。它只是在重新加载页面。所以我所做的不是提交表格。我有几个按钮,每个按钮都会指向另一个页面,但下一页上显示的内容取决于单击哪个按钮。使用表单和提交将始终重新加载页面。我建议您使用ajax——您不需要表单,您可以通过post发送或获取任何您想要的内容。变量将在之后提供给您,页面不需要重新加载。我不确定这有什么帮助,因为这是JavaScript,我正在使用PHP。需要调用的函数是查询数据库。我不是在寻找另一种解决方案。我需要帮助理解为什么我过去使用的东西不起作用。这可能是ID 10T错误。您似乎感到困惑——php永远不会知道是否单击了按钮,因为它是服务器端语言,而javascript在很大程度上是客户端语言。在这两种方法中,javascript将知道何时单击按钮,并可以以您认为合适的任何方式执行必要的重定向。如果按钮提交表单-页面将重新加载-如果表单是使用post提交的,那么post VAR将在哪一点可用。所以这确实有效,(我没有意识到按钮必须在表单中),但是有更好的方法吗?我将有五个按钮,并根据其中一个点击,下一页将有不同的信息。似乎有更好的方法。您可以在表单中添加五个不同的按钮,使用不同的名称,在外部php中只声明五个不同的isset()函数。
<form action="" method="post">
<input type="submit" name='details' value='Show Details'>
</form>
<?php
if (isset($_POST['details'])) {
echo $_POST['details'];
} else {
echo 'No post data submitted';
}