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';
}