0

すべてのクライアント ファイルを含む「フォルダ」という名前のテーブルがあります。「編集」ボタンをクリックすると: 「EtatDemande」によってデータベースに登録されているフィールド「EtatDemande」を比較したい ($ _ POST [ 'EtatDemande']) はいの場合、フィールド「StateChanged」は「1」を受け取ります"

次のクエリを試しますが、変更の登録後に "DBSAVE" の後に置くと、2 つの値は常に同じになります。

データベースに登録されている「EtatDemande」フィールドの前に置くと、常に空になります

 <?php 
  /****this query just for display the old field(registration data base *****/  
    $db = JFactory::getDbo();
    $db1 = JFactory::getDbo();
    $query = $db->getQuery(true);
    $query1 = $db1->getQuery(true);

    $query1->select($db1->quoteName(array('EtatDemande')));
    $query1->from($db1->quoteName('ml0ak_chronoengine_chronoforms_datatable_formulaire'));
    $query1->where( $db1->quoteName('NuméroK10') . ' = ' . $db1->quote($_POST['NuméroK10']));

    $db1->setQuery($query1);
    $results = $db1->loadObjectList();

    foreach ( $results as $us) {
        $EtatDemande=$us->EtatDemande;
    }

    echo "   ****   Etat Demande ancien ".$EtatDemande;
    $result1 = $db1->execute();

    /*********************************************************/

       $fields = array(
        $db->quoteName('EtatChanged') . ' = ' . $db->quote(1),
    );     
    $conditions = array( 
     $db->quoteName('EtatDemande') . '= ' . $db->quote($_POST['EtatDemande']),
     $db->quoteName('NuméroK10') . ' = ' . $db->quote($_POST['NuméroK10'])
    );

    echo "EtatDemande   :".$_POST['EtatDemande'];

    $query->update($db->quoteName('ml0ak_chronoengine_chronoforms_datatable_formulaire'));
    $query->set($fields);
    $query->where($conditions);

    $db->setQuery($query);
    $result = $db->execute();
    ?>
4

1 に答える 1

0

Chronoforms は、何もしなくてもフォームからフィールドを保存することに注意してください。変更を上書きしている可能性があります。コードで更新を行う代わりに、$form->data 配列の値を変更してみてください。

于 2016-11-24T08:36:14.627 に答える