在返回if/else语句时隐藏DIV

Hiding a DIV on return of if/else statement

本文关键字:隐藏 DIV 语句 else 返回 if      更新时间:2023-09-26

我一直试图将这个div ID #signup隐藏在我正在工作的代码中,似乎无法让它与我一直在做的事情一起工作。隐藏这个div ID的任何好方法淡出,并返回在新的div #test褪色?这是我得到的!

HTML(指数)

     <form id="signup" action="<?=$_SERVER['PHP_SELF']; ?>" method="get">
      <fieldset>
          <label for="email" id="address-label">Email Address</label>
          <input type="text" name="email" id="email" />
          <input type="image" src="i/join.jpg" name="submit" value="Join" class="btn" alt="Join" />
      </fieldset>
    </form>
    <div id="response">
        <? require_once('inc/store-address.php'); if($_GET['submit']){ echo storeAddress(); } ?>
        <div id="test">test</div>
    </div>
CSS

#test {display: none;}

JS/PHP(公司/store-address.php)

<?php
function storeAddress(){
    if($api->listSubscribe($list_id, $_GET['email'], '') === true) {
        // It worked!
    ( "#signup" ).hide( "slow" );   
    ( "#test" ).show( "slow" );
    }
    else {
        // An error ocurred, return error message   
        return 'Error: ' . $api->errorMessage;
    }
}
// If being called via ajax, autorun the function
if($_GET['ajax']){ echo storeAddress(); }
?>

从我可以看到你试图混合php和Javascript在一个函数,但这将不起作用。Php在网页发送到客户端之前运行服务器端,而Javascript仅在页面发送之后运行在客户端。

你很可能需要在JavaScript中完成这个任务,Jquery是一个轻量级的库,强烈推荐用于这样的任务。

这里有一个链接,下面的代码是从这里获取的。

$("#hide").click(function(){
  $("p").hide();
});
$("#show").click(function(){
  $("p").show();
});

你可以使用php有条件地输出js到浏览器-不是最优雅的,但它会工作;关于服务器端/客户端的注释很重要,你必须非常注意单引号/双引号。

<?php
function storeAddress(){
    if($api->listSubscribe($list_id, $_GET['email'], '') === true) {
        // It worked!
     echo '<script>';
     echo '$( "#signup" ).hide( "slow" );';   
     echo '$( "#test" ).show( "slow" );';   
     echo '</script>';
    }
    else {
        // An error ocurred, return error message   
        return 'Error: ' . $api->errorMessage;
    }
}
// If being called via ajax, autorun the function
if($_GET['ajax']){ echo storeAddress(); }
?>