我一直试图将这个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(); }
?>