Пустой результат POST с использованием CodeIgniter form_validation - PullRequest
2 голосов
/ 08 февраля 2012

Может кто-нибудь определить, почему моя форма всегда не проходит проверку? Проверка не выводит никаких ошибок, а массив POST всегда пуст. Мне подсказывает, что его отправили в неправильное место, но это не так.

    <form action="https://www.mydomain.com/account/withdraw" method="post" accept-charset="utf-8">      <fieldset class="six-col">
        <h3>What amount?</h3>
        <span style="font-size:1.3em;position:relative;display:inline;">&pound;</span>
        <input id="amount" type="text" placeholder="1.00" style="font-size:1.3em;width:115px;background-color: transparent;color:white;"/>

    </fieldset>
    <fieldset class="six-col">
        <h3>Charges</h3>
        <span id="charges" style="font-size:1.3em;"></span>
    </fieldset>
    <fieldset class="six-col">
        <h3>You leave with</h3>
        <span id="charges2" style="font-size:1.3em;"></span>
    </fieldset>
    <fieldset class="six-col end-col">
        <input type="submit" id="submit" class="btn" value="Withdraw" style="width:125px;position:absolute;bottom:0" />
    </fieldset>
</form>

Вот контроллер

    $this->load->library('form_validation');

    $this->form_validation->set_rules('amount', 'Amount', 'required|xss_clean|trim|numeric|max_length[5]');

    if ($this->form_validation->run() == FALSE)
    {           
        $this->load->helper(array('form', 'url'));
        $data['credit'] = $this->account_m->get_credit();
        $this->load->view('account/withdraw', $data);
    }
    else
    {
        // The withdraw code
    }
    $this->load->view('footer');

Спасибо за любую помощь

1 Ответ

5 голосов
/ 08 февраля 2012

На входе не задано имя .. оно должно быть: <input name="amount" id="amount" type="text" placeholder="1.00" style="font-size:1.3em;width:115px;background-color: transparent;color:white;"/>

Убедитесь, что вы действительно что-то получаете обратно.

Если это вообще возможно, проверить ... повторить post var перед form_validation следующим образом:

<?php echo $this->input->post('amount'); ?>

Если вы не возвращаете значение, то это форма, попробуйте использовать POST вместо post.

Если вы получаете значение обратно, тогда это правило.Одна возможность - правило numeric, попробуйте целое число.Попробуйте is_natural или decimal, если вы используете $ 0,00.

Кроме того, используйте класс профилировщика codeigniter для разработки .. http://codeigniter.com/user_guide/general/profiling.html

<?php $this->output->enable_profiler(TRUE); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...