我正在使用ajax与php并制作一个简单的表单,在复选框状态更改时提交自己。我必须在我的isset中取消设置变量...我只想要这个变量1次但是程序一次又一次地使用它这是我的代码
<html>
<head>
<title>
</title>
<script src="jquery-1.5.1.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
</script>
<!--Script to submit form by checkbox click-->
<script type="text/javascript">
$(function(){
$('.checkbox').on('change',function(){
$('#form').submit();
});
});
</script>
</head>
<body>
<?php
$abc=2;
?>
<form id="form" method="post" action="">
<input type="checkbox" name="checkbox" value="checked" <?php if(isset($_POST['checkbox']) || isset($abc)){
echo "checked";
}
else{
echo "";
}
//echo (isset($abc)?"checked":"");?> class="checkbox"/>
</form>
<?php
?>
<?php
if (isset($_POST['checkbox'])=='checked' || isset($abc)){
echo "data is posted";
unset($GLOBALS["$abc"]);
//$abc=null;
}
else{
echo "not posted";
unset($GLOBALS["$abc"]);
//$abc=null;
}
?>
</body>
</html>
我有变量$ abc我想要它的值只有一次,但我无法取消它。
答案 0 :(得分:1)
只需使用
更新:
<body>
<?php
$abc=2;
?>
<form id="form" method="post" action="">
<input type="checkbox" name="checkbox" value="checked" <?php if(isset($_POST['checkbox']) || isset($abc)){
echo "checked";
}
else{
echo "";
}
//echo (isset($abc)?"checked":"");?> class="checkbox"/>
</form>
<?php
?>
<?php
if (isset($_POST['checkbox'])=='checked' || isset($abc)){
echo "data is posted";
unset($abc);
//$abc=null;
}
else{
echo "not posted";
unset($abc);
//$abc=null;
}
if (isset($abc)) {
echo $abc;
}
else {
echo "<br>ABC variable is unset";
}
?>
</body>
</html>
答案 1 :(得分:1)
替换此部分:
<?php
$abc=2;
?>
有了这个:
<?php
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
$abc=2;
}
else if(isset($_POST['checkbox']) && $_POST['checkbox'] == 'checked')
{
if(isset($abc))
{
unset($abc);
}
}
?>
顺便说一句,这一行:
if (isset($_POST['checkbox'])=='checked' || isset($abc)){
应改为:
if ( ( isset($_POST['checkbox']) && $_POST['checkbox'] =='checked') || isset($abc)){
答案 2 :(得分:0)
像这样访问$ GLOBALS:
$GLOBALS["abc"]
你不能在这里使用$,因为它会在这里评估变量的内容。
另外,我认为你可以在这里使用unset($abc)
,因为它在同一范围内