如何在isset中解除php中的全局变量

时间:2015-10-27 10:37:07

标签: javascript php html css html5

我正在使用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我想要它的值只有一次,但我无法取消它。

3 个答案:

答案 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),因为它在同一范围内