结合PHP和jQuery?
我正在尝试运行以下代码:结合PHP和jQuery?,php,jquery,html,Php,Jquery,Html,我正在尝试运行以下代码: if($thisIsSaved > 0 && $_SESSION["loggedIn"] == 1) { //show unsave echo "<script>$('#unsave').show();$('#save').hide();</script>"; } elseif($t
if($thisIsSaved > 0 && $_SESSION["loggedIn"] == 1)
{
//show unsave
echo "<script>$('#unsave').show();$('#save').hide();</script>";
}
elseif($thisIsSaved == 0 && $_SESSION["loggedIn"] == 1)
{
//show save
echo "<script>$('#save').show();$('#unsave').hide();</script>";
}
else
{
echo "<script>$('#unsave').hide();$('#save').hide();</script>";
}
<button id="save">Save</button>
<button id="unsave">Unsave</button>
if($thisIsSaved>0&&$\u会话[“loggedIn”]==1)
{
//不保存
回显“$('#未保存').show();$('#save').hide();”;
}
elseif($thisIsSaved==0&&$\u会话[“loggedIn”]==1)
{
//显示保存
回显“$('#保存').show();$('#unsave').hide();”;
}
其他的
{
回显“$('#未保存').hide();$('#save').hide();”;
}
拯救
未保存
我以前在纯PHP中有这个,没有jQuery。它所做的是,根据$thisIsSaved的值,它将显示或不显示其中一个或两个按钮。现在是jQuery,页面不像PHP那样保存jQuery的保存状态,因此我必须找到一种在开始时显示和隐藏按钮的替代方法。有什么帮助吗?您需要将脚本中的内容包装到调用中:
。。。
echo“$(document).ready(function(){$('#unsave').hide();$('#save').hide();}”);
...
问题是,由于document.ready不会延迟这些脚本的执行,因此jQuery命令在实际解析元素之前运行(因为按钮出现在脚本标记之后)
通常最好确保运行的任何涉及DOM的jQuery都在文档中运行。准备好确保所有内容都已解析。你会在大多数在线示例中看到这一点
尽管如此,为什么要将处理工作转移给客户机呢?如果您可以用PHP输出一个类/样式来隐藏/显示按钮,我建议保留该类/样式,除非需要执行其他特定的客户端逻辑。您需要将脚本中的内容包装在调用中:
。。。
echo“$(document).ready(function(){$('#unsave').hide();$('#save').hide();}”);
...
问题是,由于document.ready不会延迟这些脚本的执行,因此jQuery命令在实际解析元素之前运行(因为按钮出现在脚本标记之后)
通常最好确保运行的任何涉及DOM的jQuery都在文档中运行。准备好确保所有内容都已解析。你会在大多数在线示例中看到这一点
尽管如此,为什么要将处理工作转移给客户机呢?如果可以用PHP输出一个类/样式来隐藏/显示按钮,我建议保留该类/样式,除非需要执行其他特定的客户端逻辑。尝试将按钮html放在生成jquery的PHP之前,因此,当呈现页面时,按钮在您尝试隐藏/显示它们之前被定义。尝试将按钮html放在生成jquery的php之前,以便在呈现页面时,按钮在您尝试隐藏/显示它们之前被定义。我同意。既然状态检查是对存储在PHP变量中的数据进行的,那么为什么要将逻辑从PHP移动到jQuery/客户端,用户可以在那里操作html并执行您可能不想执行的操作呢?我同意。既然状态检查是对存储在PHP变量中的数据进行的,那么为什么要将逻辑从PHP移动到jQuery/客户端,在那里用户可以操作html并执行您可能不希望的操作呢。
...
echo "<script>$(document).ready(function() { $('#unsave').hide();$('#save').hide(); });</script>";
...