Отправьте форму, а затем вставьте значения в функцию php - PullRequest
0 голосов
/ 18 августа 2011

У меня есть форма, где я хочу отправить две записи.Это entry_id и адрес электронной почты.У меня есть функция php, которая начинается примерно так:

    public function theFunction($data) {
    if (false && !empty($data['email']) && !empty($data['entry_id']) ) {
        $sql = $this->db->select()
            ->from('votes')
            ->where('entry_id = ?', $data['entry_id'])
            ->where('email = ?', $data['email'])
            ->order('created DESC');

Но как я должен вызывать эту функцию из файла php и переносить значения из формы со мной, это далеко, как яподойди, но, кажется, все работает:

$fields = array("email","entry_id");
$data = array();
foreach($fields as $field){
    $data[$field] = $_POST[$field];
}

echo theFunction($data);

Кто-нибудь знает, как мне поступить?

Ответы [ 2 ]

2 голосов
/ 18 августа 2011

Это выглядит хорошо, если не считать этого:

if (false && !empty($data['email']) && !empty($data['entry_id']) ) {

Это никогда не будет правдой из-за ложного.

1 голос
/ 18 августа 2011

(CodeIgniter? Просто любопытно, это сильно влияет на такой вопрос.)

Изменить это:

if (false && !empty($data['email']) && !empty($data['entry_id']) ) {

к этому:

if (!empty($data['email']) && !empty($data['entry_id'])) {

Никогда не начинайте логическое сравнение && со значением false, PHP завершает поиск ответа first false, который находит, и не выполняет никаких дополнительных тестов. Ваш код обрезан, это все тело функции? Это что-нибудь возвращает? Что происходит с $ sql? Если ваша функция ничего не возвращает, echo ничего не выводит, поэтому вы ничего не увидите в любом случае. > _> Пример размещения

} else { return $result = 'test failed'; } 

после того, как if to ловить сбои, предупредил бы вас о проблеме сравнения.

Последнее, возможно, попробуйте изменить это:

echo theFunction($data);

к этому:

$test = theFunction($data);
var_dump($test);

var_dump () не оставляет места для сомнений. Удачи, хт;)

...