我目前有一个联系表单,它使用以下代码来确定是否显示长表单或短表单。
<?php
$itemid = JRequest::getVar('Itemid');
$menu = &JSite::getMenu();
$active = $menu->getItem($itemid);
$params = $menu->getParams($active->id);
$pageclass = $params->get('pageclass_sfx');
if (strpos($pageclass, 'short') !== false) {
$shortform = true;
} else {
$shortform = false;
}
?>
我在 html 中有一个简短的表单区域,以及一个 else if 区域..
<div class="reqd">
<div class="fields">
<div class="column first">
<label for="firstname">FIRST_NAME_LABEL<span> *</span></label>
<input type="text" name="firstname" id="firstname" title="THIS_FIELD_IS_REQUIRED" />
</div>
<div class="column last">
<label for="lastname">LAST_NAME_LABEL<span class="reqd"> *</span></label>
<input type="text" name="lastname" id="lastname" title="THIS_FIELD_IS_REQUIRED" />
</div>
</div>
</div>
<div class="fields">
<div class="<?php if (!$shortform) echo 'column first '; ?>reqd">
<label for="company">COMPANY_LABEL<span> *</span></label>
<input type="text" name="company" id="company" title="THIS_FIELD_IS_REQUIRED" />
</div>
<?php if ($shortform): ?>
</div>
<?php else: ?>
$shortform 的值由 Joomla 中菜单项的类设置。
我想在表单本身上添加一个复选框,以允许查看者在表单的长格式和短格式版本之间切换。
我对此有点陌生,任何帮助将不胜感激!
根据响应进行编辑:所以这对我不起作用..我是否需要在 html 中添加一些 php 来标识什么是短形式,什么是长形式?
<input type="checkbox" name ="more" id="more" onClick="toggleText();" />
<div class="shortform">
<div id="fistname">
<label for="firstname">FIRST_NAME_LABEL</label>
<input type="text" name="firstname" id="firstname"/>
</div>
<div id="lastname">
<label for="lastname">LAST_NAME_LABEL </label>
<input type="text" name="lastname" id="lastname"/>
</div>
</div>
<div class="longform">
<div id="company">
<label for="company">COMPANY_LABEL</label>
<input type="text" name="company" id="company"/>
</div>
<div id="email">
<label for="email">EMAIL_LABEL</label>
<input type="text" name="email" id="email"/>
</div>
</div>
这是 js。
function toggleText()
{
if (document.getElementById('more').checked == true){
document.getElementById('longform').style.display = 'none';
document.getElementById('longform').style.display = 'block';
} else {
document.getElementById('longform').style.display = 'block';
document.getElementById('longform').style.display = 'none';
}
}
最佳答案
所以首先要理解的是,php 是一种服务器端语言,而 javascript 是一种客户端语言....php 运行...然后 js 运行。因此,如果你想隐藏和显示内容,你需要将其加载到前端,然后构建你的js来隐藏/显示它。当然,您可以通过 ajax 动态提取内容,但如果您对整个事情很陌生,我建议保持简单......
所以基本上通过 php 输出两个 div....一个包含短格式,另一个包含长格式。隐藏(通过 css)默认情况下不希望显示的内容。
然后在您的复选框上...添加 onchange='toggleText'
这会是这样的..
function toggleText()
{
if (document.getElementById('checkboxID').checked == true){
document.getElementById('longFormID').style.display = 'none';
document.getElementById('longFormID').style.display = 'block';
} else {
document.getElementById('longFormID').style.display = 'block';
document.getElementById('longFormID').style.display = 'none';
}
}
显然你需要交换你的 ids...此代码未经测试,只是为了演示这个想法。
关于php - 用于更改 true 与 false 函数值的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616140/