В Extjs, как узнать, установлен ли флажок, а затем, если он установлен, добавить идентификатор этого флажка в массив? - PullRequest
0 голосов
/ 23 апреля 2011

Я сейчас изучаю Extjs вместе с PHP и MySQL для одного из моих курсов веб-разработки в колледже, и я очень близок к завершению моего финального проекта для класса, и я застрял на чем-то столь же простом, как флажок.Я больше увлекаюсь программированием на c #, поэтому мое мышление на c # сталкивается с необходимостью ExtJS.

Программа задает больничным пациентам огромное количество вопросов об их повседневных чувствах, и у меня есть списокФлажки для общих симптомов, и мне нужно иметь возможность проверить, после отправки формы, какие симптомы были проверены, и добавить идентификатор идентификатора в массив симптомов.

Это даже близко?

    if(headacheCheckbox.getValue()==true){
        symptoms[headacheCheckbox.getId()];
    }

на стороне сервера У меня есть

        $id=$dbh->lastInsertId();
        $symptom=$_REQUEST['symptoms'];
        while($tmp=$symptom->fetch()){
        $stmt=$dbh->prepare("insert into symptom_input (inputid, symptomid) values (?,?)");
        $stmt->bindParam(1, $id);
        $stmt->bindParam(2, $tmp);
        $stmt->execute();
        }

, и у меня есть запрос ajax в моем ExtJS, принимающий массив симптомов в качестве параметра, подобного такому.

    params: {action: 'create_input',
        symptoms: symptoms[],
        },

Абсолютно любая помощь / критика приветствуется.

Спасибо!

1 Ответ

1 голос
/ 23 апреля 2011

Эта строка

 $symptom=$_REQUEST['symptoms'];

и эта строка

 while($tmp=$symptom->fetch()){

не вычислять.

fecth - это метод для подготовленного объекта оператора http://il2.php.net/manual/en/mysqli-stmt.fetch.php (когда вы выбираете набор результатов, аналогично mysql_fecth_row для неподготовленных операторов), когда у вас есть массив, проанализированный для этой переменной $symptom=$_REQUEST['symptoms']; Таким образом, ваш выбор вызовет ошибку в то время как

при условии, что ваш массив выглядит следующим образом

$_REQUEST['symptoms'][112];
$_REQUEST['symptoms'][234];

вам нужно что-то вроде этого

  $id=$dbh->lastInsertId();
  $symptom=$_REQUEST['symptoms'];

   foreach($symptoms as $symptomid){
        $stmt=$dbh->prepare("insert into symptom_input (inputid, symptomid) values (?,?)");
        $stmt->bindParam(1, $id);
        $stmt->bindParam(2, $symptomid);
        $stmt->execute();
        }

Также при передаче параметров

при условии, что приведенный ниже код создает массив в вашем JavaScript

if(headacheCheckbox.getValue()==true){
        symptoms[headacheCheckbox.getId()];
    }

нужно

params: {action: 'create_input',
        symptoms: symptoms //without square brackets and no comma IE7 will throw an error
        },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...