Php 表单\u验证集\u规则codeigniter后网页加载错误
在表单\u验证中设置\u规则后,可以这样做:Php 表单\u验证集\u规则codeigniter后网页加载错误,php,codeigniter,validation,Php,Codeigniter,Validation,在表单\u验证中设置\u规则后,可以这样做: $this->form_validation->set_rules('empfact', 'Nome da Empresa','trim|required|xss_clean'); <div class="container"> <?php echo form_error('empfact','<div class="error">','</div>'); ?> </div&
$this->form_validation->set_rules('empfact', 'Nome da Empresa','trim|required|xss_clean');
<div class="container">
<?php echo form_error('empfact','<div class="error">','</div>'); ?>
</div>
此操作是否修改我的网页布局?这在任何情况下都有可能吗
因为我遇到了一个问题,问题发生在这个动作之后(设置规则)
问题是:在我提交表单并设置_规则后,我的网页在页面顶部加载了一个高度为+/-10px的空白
加:在IE中(仅在IE中)执行此操作后,我的网页加载时没有一些图像并向左对齐
有什么想法吗
表单控制器
<?php
class Form extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|matches[emailconf]|callback_value_email|xss_clean');
$this->form_validation->set_rules('emailconf', 'Confirmação de Email', 'trim|required|xss_clean');
$this->form_validation->set_rules('passwd', 'Password', 'trim|required|matches[passconf]|xss_clean');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'trim|required|xss_clean');
$this->form_validation->set_rules('empfact', 'Nome da Empresa', 'trim|required|xss_clean');
$this->form_validation->set_rules('contr', 'Nº Contribuinte', 'trim|required|xss_clean');
$this->form_validation->set_rules('nome', 'Nome', 'trim|required|xss_clean');
$this->form_validation->set_rules('apelido', 'Apelido', 'trim|required|xss_clean');
$this->form_validation->set_rules('morada', 'Morada', 'trim|required|xss_clean');
$this->form_validation->set_rules('codpostal', 'Código Postal', 'trim|required|xss_clean');
$this->form_validation->set_rules('localidade', 'Localidade', 'trim|required|xss_clean');
$this->form_validation->set_rules('telefone', 'Telefone', 'trim|required|xss_clean');
$this->form_validation->set_rules('telemovel', 'Telemóvel', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('header');
$this->load->view('myform');
$this->load->view('footer');
}
else
{
$this->load->view('header');
$this->load->view('formsuccess');
$this->load->view('footer');
}
}
public function value_email($str)
{
$this->load->model('carfinder_model');
// Validate exists
$result = $this->carfinder_model->confirmExistence('email', $str);
// Now we verify the result
if(! $result)
{
return TRUE;
}
else
{
$this->form_validation->set_message('value_email', 'O e-mail escolhido já está registado');
return FALSE;
}
}
}
?>
myForm视图
<!-- content -->
<section id="content">
<div class="wrapper">
<div class="indent-bot-12">
<h2 class="indent-bot-2">Registe-se agora no CarFinder-PRO.pt</h2>
<ul class="list-box">
<li>
<h3 class="indent-bot-7">Para utilizar os serviços CarFinder-PRO.pt, é necessário registar-se. O registo permite-lhe aceder à listagem dos veículos, reservá-los e encomendá-los. O registo é rápido e gratuito.</h3>
<p class="indent-bot-15">*O registo é exclusivo a comerciantes profissionais. Após o registo a sua conta só será ativada depois de passar o processo de validação. Todos os campos são de preenchimento obrigatório.</p>
</li>
<?php if(validation_errors())
{
echo '<li>';
echo '<div class="val-errors">';
echo '<div class="val-image">';
echo '<img src="../../images/stopp.png" alt="" />';
echo '</div>';
echo '<div class="val-text">';
echo validation_errors();
echo '</div>';
echo '</div>';
echo '</li>';
}?>
<li>
<?php echo form_open('form'); ?>
<p class="indent-bot-15">*Dados de Acesso</p>
<b><label for="email"><?php if(form_error('email')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Email</label></b>
<input type="text" name="email" value="<?php if(! form_error('email')) { echo set_value('email'); } ?>" size="40" />
<br />
<b><label for="emailconf"><?php if(form_error('email')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Confirmar Email</label></b>
<input type="text" name="emailconf" value="<?php if(! form_error('email')) { echo set_value('emailconf'); } ?>" size="40" />
<br />
<!-- <h5>Username</h5>
<php echo form_error('username'); ?>
<input type="password" name="username" value="<php echo set_value('username'); ?>" onfocus='this.value="";' onblur='if (this.value=="") this.value = "E-mail:";' size="50" /> -->
<b><label for="passwd"><?php if(form_error('passwd')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Password</label></b>
<input type="password" name="passwd" value autocomplete="off" size="25" />
<br />
<b><label for="passconf"><?php if(form_error('passwd')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Confirmar Password</label></b>
<input type="password" name="passconf" value autocomplete="off" size="25" />
<br />
</li>
<li>
<p class="indent-bot-15">*Dados Pessoais</p>
<b><label for="empfact"><?php if(form_error('empfact')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Nome da Empresa</label></b>
<input type="text" name="empfact" value="<?php if(! form_error('empfact')) { echo set_value('empfact'); } ?>" size="40" />
<br />
<b><label for="contr"><?php if(form_error('contr')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Nº Contribuinte</label></b>
<input type="text" name="contr" value="<?php if(! form_error('contr')) { echo set_value('contr'); } ?>" size="25" />
<br />
<b><label for="nome"><?php if(form_error('nome')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Nome</label></b>
<input type="text" name="nome" value="<?php if(! form_error('nome')) { echo set_value('nome'); } ?>" size="40" />
<br />
<b><label for="apelido"><?php if(form_error('apelido')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Apelido</label></b>
<input type="text" name="apelido" value="<?php if(! form_error('apelido')) { echo set_value('apelido'); } ?>" size="40" />
<br />
<b><label for="morada"><?php if(form_error('morada')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Morada</label></b>
<input type="text" name="morada" value="<?php if(! form_error('morada')) { echo set_value('morada'); } ?>" size="40" />
<br />
<b><label for="codpostal"><?php if(form_error('codpostal')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Código Postal</label></b>
<input type="text" name="codpostal" value="<?php if(! form_error('codpostal')) { echo set_value('codpostal'); } ?>" size="40" />
<br />
<b><label for="localidade"><?php if(form_error('localidade')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Localidade</label></b>
<input type="text" name="localidade" value="<?php if(! form_error('localidade')) { echo set_value('localidade'); } ?>" size="40" />
<br />
<b><label for="telefone"><?php if(form_error('telefone')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Telefone</label></b>
<input type="text" name="telefone" value="<?php if(! form_error('telefone')) { echo set_value('telefone'); } ?>" size="25" />
<br />
<b><label for="telemovel"><?php if(form_error('telemovel')) { echo '<div class="imgset"><img src="../../images/markerred.jpg" alt="" /></div>'; } ?> Telemóvel</label></b>
<input type="text" name="telemovel" value="<?php if(! form_error('telemovel')) { echo set_value('telemovel'); } ?>" size="25" />
<br />
<br /><br />*Ao clicar no botão Registar, declara que aceita as <a href="#">Condições Gerais de Utilização</a> da CarFinder bem como os seus <a href="#">Termos e Condições</a>.
<br /><br />
<div><input class="button-registo" type="submit" value="Registar" /></div>
<br />
</form>
</li>
</ul>
</div>
</div>
注册se agora no CarFinder-PRO.pt
-
公共事业部服务部CarFinder-PRO.pt,注册处。O登记许可证,并登记注册。O登记费和小费。
*O注册商的排他性利润。登记注册一份关于通行证和有效性程序的文件。托多斯·坎波斯·萨昂·德·奥布里加托先兆酒店
-
*墙裙
电子邮件
也许您可以留下一个空的“div”来保存视图中的错误,如下所示:
$this->form_validation->set_rules('empfact', 'Nome da Empresa','trim|required|xss_clean');
<div class="container">
<?php echo form_error('empfact','<div class="error">','</div>'); ?>
</div>
我相信你会在你的CSS中找到答案/问题
您还将根据表单(myform)是否经过验证加载两个不同的视图。因此,您实际上并没有重新加载表单提交,而是加载了一个新视图(formsuccess),并可能引入了不同的元素嵌套、CSS等
通过只加载一个视图(myform)来调试页面。暂时关闭条件语句,并担心myform。CodeIgniter中的表单验证可以通过一个视图完成。这就是为什么用户手册建议那些内联php
函数调用,我在您的标记中看到了这些调用。试着让那个页面正常工作。然后再担心是否会出现“成功”页面。最后,我发现了问题所在。
这是一个非常愚蠢的问题,但也许这篇文章将来对其他程序员有用
我选择在NOTEPAD++中进行UTF-8(标准是ANSI)中的文本编码。在再次显示页面之前,您是否实际运行表单验证?如果是,验证是否失败?在任何情况下,验证后是否不加载其他视图?最后,你有没有试着用Firebug检查导致10px差距的原因?是的,我以前运行过form_验证。如果我重新加载表单视图,是因为表单验证失败。我加载页眉视图表单视图和页脚视图我无法理解firebug导致10px差距的原因,但很奇怪,因为firebug说是在:OCan you show more code please?firebug显示一条白线,后面没有任何内容,但我不知道这条线是什么可能你不理解我的问题,或者我没有解释清楚。在视图中显示表单错误没有任何问题。我的问题是关于表单验证和设置规则如何影响我的布局;提交表单并重新加载表单视图后,输入的高度将更改为默认值。我认为仅显示在输入附近的“错误”会影响页面。因此,您可以在错误位置预先指定样式。即使我没有在页面中显示错误,但当我在controllerIt中设置规则时,布局会发生更改,这非常奇怪,在我提交表单后,如果我没有设置规则,一切都正常,没有bug,但另一方面,如果我在表单验证中设置规则,即使我在屏幕上没有显示任何错误,即使我在评论验证错误时,网页布局也会出错();谢谢你的评论。我已经试着去掉所有的CSS,但问题仍然存在。这真是个奇怪的问题。如果我只加载我的表单视图,我就检测不到任何问题,因为我的问题出现在页面顶部,输入字段的高度会发生变化(但如果我没有使用css,也没有将它们放在不同的位置,它们当然不会发生变化)。这是一个非常奇怪的问题,最大的问题是我不知道应该在哪里搜索来解决它。我已经尝试只加载一个视图,尝试删除所有CSS,尝试加载没有任何form_error()函数的myForm视图。我没有任何问题的唯一情况是在form Controller中注释所有set_规则。此外,当form_验证为TRUE时,我没有任何问题。因此,您可以忘记formsuccess的这一部分。您最后的评论似乎就是答案……如果form_validation==true,则不会显示任何错误,并且会显示formsuccess。因此,您的CSS forif(form_error('email')){echo'…
很可能导致了问题(特别是.imgset
,或者您可能正在将您的_error
包装在CodeIgniter的error函数的附加
标记中。我认为这将是一个问题,但直到今天才看到您的代码。分类做得很好。