[英]PHP and (isset($_POST[''])) issue
抱歉,如果这个问题重复,我却没有找到一个明显的答案。 我是一个完整的新手与PHP ,善良! 当我加载下面的代码时,它似乎运行if(isset($_POST['test']))
即使我没有按下按钮"test"
。 我只想按下“ test
”按钮时执行代码。 我该如何解决这个问题?
<?php
if(isset($_POST['update'])) {
$content=simplexml_load_file("books.xml");
$value=$content->book->price;
$sum=$content->book->price;
}
if(isset($_POST['test'])) {
$content=simplexml_load_file("books.xml");
$value=$content->book->price;
$content->book->price = $value + 1.0;
$content->asXML("books.xml");
$sum=$content->book->price;
}
?>
<body>
<form method="post">
<input type="checkbox" id="i1check1" onchange="toggleDisabled(this.checked)"> Alarm 01
<input type="text" id="i1text1" name="i1" size="80" maxlength="128" value="<?php echo @$sum;?>"/>
<input type="submit" id="i1btn1" name="update" value="Update"/>
<input type="submit" id="i1btn2" name="test" value="Test"/>
</form>
<script>
function toggleDisabled(_checked) {
document.getElementById('i1text1').disabled = _checked ? false : true;
document.getElementById('i1btn1').disabled = _checked ? false : true;
}
</script>
</body>
请试试这个
if(isset($_POST['update']) && $_POST['update'] == "Update"){
$content=simplexml_load_file("books.xml");
$value=$content->book->price;
$sum=$content->book->price;
}
if(isset($_POST['test']) && $_POST['test'] == "Test"){
$content=simplexml_load_file("books.xml");
$value=$content->book->price;
$content->book->price = $value + 1.0;
$content->asXML("books.xml");
$sum=$content->book->price;
}
每当提交表单时,将在$ _POST数组中接收所有表单的名称属性。 设置与否都无关紧要。
你可以使用!empty进行过滤,因为它会检查set +有值 。 虽然isset检查只设置 。
if(!empty($_POST['update'])){ // !empty instead of isset
$content=simplexml_load_file("books.xml");
$value=$content->book->price;
$sum=$content->book->price;
}
if(!empty($_POST['test'])){ // !empty instead of isset
$content=simplexml_load_file("books.xml");
$value=$content->book->price;
$content->book->price = $value + 1.0;
$content->asXML("books.xml");
$sum=$content->book->price;
}
建议 : - 你写了echo @$sum;
通知。 永远不要使用@隐藏错误。 您应该在开发模式下启用error_reporting而不是这样做。
你应该写下面的声明如下。
echo empty($sum) ? '' : $sum; // ternary operator
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.