我有一个按钮,我需要在点击它时调用一个函数但由于某种原因,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>
以下是外部的。我知道它已包含在内,因为如果我在else
语句中添加if
,并将该变量设置为不同的变量,则会发生变化。
$subject_details = '';
if(isset($_POST['details'])){
$subject_details = 'button clicked';
setDetails();
}
感谢有人看到这个!
答案 0 :(得分:1)
isset()函数仅适用于输入类型提交。您可以做的是将按钮嵌入到表单中,让页面重新加载到自身以获取存储在外部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';
}
?>
答案 1 :(得分:1)
如果没有看到完整的代码示例,我无法确定,但您可能没有在method="post"
标记上指定<form>
属性。表单默认为method="get"
,因此您需要使用isset($_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';
}
答案 2 :(得分:0)
你可以玩这个...可能有帮助
<!-- 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' />