• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión

Solucionado Crear una página que lea de la base de datos

Estado
Cerrado para nuevas respuestas

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Insertar CODE, HTML o PHP:
    public function actionNumero()
    {
        //Selecciona la ID del usuario
        $_userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
        if ($_userId)[COLOR=#ff0000][B]{[/B][/COLOR]
            $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
        [COLOR=#ff0000][B]}[/B][/COLOR]else[B][COLOR=#ff0000]{[/COLOR][/B]
            $userId =  XenForo_Visitor::getUserId();
          [COLOR=#ff0000][B]}[/B][/COLOR]
        $id = $this->getModelFromCache('XenForo_Model_User2')->getId($userId);
        $numero = $this->getModelFromCache('XenForo_Model_User2')->getNumero($userId);
 
   
        $viewParams = array(
            'id' => [S][COLOR=#ff0000][B]$players[/B][/COLOR][/S][B][COLOR=#0000ff]$id[/COLOR][/B],
            'numero' => $numero
        );
 
        return $this->responseView('XenForo_ViewPublic_Misc_Empty', 'user/Update', $viewParams);
    }
Template:
Insertar CODE, HTML o PHP:
<xen:foreach loop="$users" value="$user" i="$i">
<form action="{xen:link team/NumeroUpdate}" method="post" class="Form">
        <label for="ctrl_custom_title">{$user.name} {$user.surname}:</label>
                <select name="[COLOR=#0000ff][B]numero[][/B][/COLOR]" class="textCtrl OptOut" id="ctrl_style_id" autofocus="[COLOR=#0000ff][B]true[/B][/COLOR][S]on[/S]">
                            <xen:if  is="{$numero} == '1'"><option value="{$numero}">{$numero}</option>
                                        <option value="2">2</option>
                            <xen:elseif is="{$numero} == '2'" /><option value="1">1</option>
                                        <option value="{$numero}">{$numero}</option>
                            <xen:else />
                                        <option value="1">1</option>
                                        <option value="2">2</option>
                            </xen:if>
                    [S]</optgroup>[/S]
                </select>
    [S]{$user.numero}[/S]
    <input type="hidden" name="$player_id" value="{$user.id}" /><br />
 
</xen:foreach>
    <input type="submit" value="{xen:phrase save}" class="button primary" accesskey="s" />
    <input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>
Controlador:
Insertar CODE, HTML o PHP:
        $settings = $this->_input->filter(array(
            'id' => array(XenForo_Input::UINT, 'array' => true),
            'numero' => XenForo_Input::STRING)
        ));

Mira a ver si así.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
No hay manera.. Te pego todo como lo tengo ahora mismo, a ver si encuentras el/los error(es). Me corre un poco de prisa hacerlo funcionar porque estoy aquí estancado y me gustaría continuar con el resto.

Lo que quiero es fácil: Muestro la lista de jugadores en el template, cada uno con un combobox y 2 opciones (1 y 2), dejo modificarlas a gusto y después lo guardo todo únicamente con un botón.

Controller
Insertar CODE, HTML o PHP:
    public function actionTraining ()
    {
        //Selecciona la ID del usuario
        $_userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
        if ($_userId){
            $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
        }else{
            $userId =  XenForo_Visitor::getUserId();
        }
        $teamId = ($this->getModelFromCache('XenForo_Model_Teams')->getTeamId($userId));
        $team = ($this->getModelFromCache('XenForo_Model_Teams')->getTeamByUser($userId));
        $players = ($this->getModelFromCache('XenForo_Model_Teams')->getPlayers($teamId));
 
   
        $viewParams = array(
            'players' => $players,
            'team' => $team
        );
 
        return $this->responseView('XenForo_ViewPublic_Misc_Empty', 'team_training', $viewParams);
    }
 
    public function actionTrainingPlayerUpdate ()
    {
        $visitor = XenForo_Visitor::getInstance();
        if (!$visitor->get('user_id')) {
            return $this->responseError(new XenForo_Phrase('cannot_edit_training'));
        }
        $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
        $settings = $this->_input->filter(array(
            'player_id' => array(XenForo_Input::UINT, 'array' => true),
            'training_group' => XenForo_Input::STRING)
        );
        $writer = $this->_savePlayer($settings, $errors);
 
 
        return $this->responseRedirect(
            XenForo_ControllerResponse_Redirect::SUCCESS,
            XenForo_Link::buildPublicLink('team/training'),
            null);
    }
 
    protected function _savePlayer($settings, &$errors)
    {
        $writer = XenForo_DataWriter::create('XenForo_DataWriter_Player');
        $writer->setExistingData($settings['player_id']);
        $writer->set('training_group', $settings['training_group']);
 
        $writer->preSave();
 
        /*if ($dwErrors = $writer->getErrors())
        {
            $errors = (is_array($errors) ? $dwErrors + $errors : $dwErrors);
            return false;
        }*/
 
        $writer->save();
        return $writer;
    }

Datawriter
Insertar CODE, HTML o PHP:
class XenForo_DataWriter_Player extends XenForo_DataWriter
{
    protected function _getFields()   
    {
        array(
        'xf_player' => array(
            'player_id'    => array( 'type' => self::TYPE_UINT, 'autoIncrement' => true ),
            'training_group'                => array('type' => self::TYPE_UINT,    'required' => false, 'default' => ''),
        )
   
        );
    }
 
    /**
    * Gets the actual existing data out of data that was passed in. See parent for explanation.
    *
    * @param mixed
    *
    * @see XenForo_DataWriter::_getExistingData()
    *
    * @return array|false
    */
    protected function _getExistingData($data)
    {
        if (!$playerId= $this->_getExistingPrimaryKey($data, 'player_id'))
        {
            return false;
        }
 
        return array('xf_player' => $this->_getPlayerModel()->getPlayer($playerId));
   
    }
 
    protected function _getUpdateCondition($tableName)
    {
        return 'player_id = ' . $this->_db->quote($this->getExisting('player_id'));
    }
 
    /**
    * @return XenForo_Model_Players
    */
    protected function _getPlayerModel()
    {
        return $this->getModelFromCache('XenForo_Model_Player');
    }
}

Template
Insertar CODE, HTML o PHP:
<form action="{xen:link team/trainingPlayerUpdate}" method="post" class="Form">
<xen:foreach loop="$players" value="$player" i="$i">
        <label for="ctrl_custom_title">{$player.name} {$player.surname}:</label>
                <select name="training_group[]" class="textCtrl OptOut" id="ctrl_style_id" autofocus="true">
                            <option value="'1'">1</option>
                            <option value="'2'">2</option>
                    </optgroup>
                </select>
    {$player.training_group}
    <input type="hidden" name="player_id" value="{$player.player_id}" /><br />
 
</xen:foreach>
    <input type="submit" value="{xen:phrase save}" class="button primary" accesskey="s" />
    <input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>

Gracias! :)
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Controller
Insertar CODE, HTML o PHP:
    public function actionTraining ()
    {
        //Selecciona la ID del usuario
        $_userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
[B]        if (!$_userId){[/B]
[B]            $_userId =  XenForo_Visitor::getUserId();[/B]
[B]        }[/B]
        $teamId = $this->getModelFromCache('XenForo_Model_Teams')->getTeamId([B]$_userId[/B]);
        $team = $this->getModelFromCache('XenForo_Model_Teams')->getTeamByUser([B]$_userId[/B]);
        $players = $this->getModelFromCache('XenForo_Model_Teams')->getPlayers($teamId);
 
 
        $viewParams = array(
            'players' => $players,
            'team' => $team
        );
 
        return $this->responseView('XenForo_ViewPublic_Misc_Empty', 'team_training', $viewParams);
    }
 
    public function actionTrainingPlayerUpdate ()
    {
        $visitor = XenForo_Visitor::getInstance();
        if (!$visitor->get('user_id')) {
            return $this->responseError(new XenForo_Phrase('cannot_edit_training'));
        }
        $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
        $settings = $this->_input->filter(array(
            'player_id' => XenForo_Input::UINT,
            'training_group' => XenForo_Input::STRING)
        );
        $writer = $this->_savePlayer($settings, $errors);
 
 
        return $this->responseRedirect(
            XenForo_ControllerResponse_Redirect::SUCCESS,
            XenForo_Link::buildPublicLink('team/training'),
            null);
    }
 
    protected function _savePlayer($settings, &$errors)
    {
        $writer = XenForo_DataWriter::create('XenForo_DataWriter_Player');
        $writer->setExistingData($settings['player_id']);
        $writer->set('training_group', $settings['training_group']);
 
        $writer->preSave();
 
        /*if ($dwErrors = $writer->getErrors())
        {
            $errors = (is_array($errors) ? $dwErrors + $errors : $dwErrors);
            return false;
        }*/
 
        $writer->save();
        return $writer;
    }

Pasado mañana sigo (mañana estoy de guardia y hoy tengo el día de mi peña)

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Gracias :)

Esa parte que comentas está bien, porque me devuelve la lista de jugadores ($players y $team) que están basados en el userId (la función la hice yo, no es la default de xenforo).
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Template
Insertar CODE, HTML o PHP:
<form action="{xen:link team/trainingPlayerUpdate}" method="post" class="Form">
<xen:foreach loop="$players" value="$player" i="$i">
        <label for="ctrl_custom_title">{$player.name} {$player.surname}:</label>
                <select name="training_group" class="textCtrl OptOut" id="ctrl_style_id" [B]value="{$team}"[/B] autofocus="true">
                            <option value=[B]"1"[/B]>1</option>
                            <option value=[B]"2"[/B]>2</option>
                    </optgroup>
                </select>
    {$player.training_group}
    <input type="hidden" name="player_id" value="{$player.player_id}" /><br />
 
</xen:foreach>
    <input type="submit" value="{xen:phrase save}" class="button primary" accesskey="s" />
    <input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
</form>
No lo tengo claro, pero puede que así funcione.

salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Lo probé por si acaso, pero como esperaba da error. No puedo meterle ahí un value porque el valor de ese select lo defino en el combobox (1 o 2).


Hoy probé otra forma de hacerlo, pero me sigue dando el error ese de las narices que no consigo localizar. Dejé así el controlador (con esto ya no usaría la función save, sería un update completo):
Insertar CODE, HTML o PHP:
    public function actionTrainingPlayerUpdate ()
    {
        $visitor = XenForo_Visitor::getInstance();
        if (!$visitor->get('user_id')) {
            return $this->responseError(new XenForo_Phrase('cannot_edit_training'));
        }
         $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);    

        $input = $this->_input->filter(array(
            'player_id' => array(XenForo_Input::UINT),
            'training_group' => array(XenForo_Input::UINT))
        );

        $dw = XenForo_DataWriter::create('XenForo_DataWriter_Player');
        $dw->setExistingData($input);
        $dw->bulkSet(array(
            'player_id'    => $input['player_id'],
            'training_group' => $input['training_group'],
        ));
        $dw->save();

        return $this->responseRedirect(
            XenForo_ControllerResponse_Redirect::SUCCESS,
            XenForo_Link::buildPublicLink('team/training'),
            null);
    }

Peeeero, a pesar de no parecerme mal, da este error:
  • The existing data required by the data writer could not be found.
  • The field 'player_id' was not recognised.
  • The field 'training_group' was not recognised.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Prueba así.
Insertar CODE, HTML o PHP:
    public function actionTrainingPlayerUpdate ()
    {
        $visitor = XenForo_Visitor::getInstance();
        if (!$visitor->get('user_id')) {
            return $this->responseError(new XenForo_Phrase('cannot_edit_training'));
        }
        $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
        [B]$playerId = $this->_input->filterSingle('player_id', XenForo_Input::UINT);[/B]
[B]        $trainingGroup = $this->_input->filterSingle('training_group', XenForo_Input::STRING);[/B]
 
        $dw = XenForo_DataWriter::create('XenForo_DataWriter_Player');
        $dw->setExistingData($input);
        $dw->bulkSet(array(
            'player_id'    => [B]$playerId[/B],
            'training_group' => [B]$trainingGroup[/B],
        ));
        $dw->save();
 
        return $this->responseRedirect(
            XenForo_ControllerResponse_Redirect::SUCCESS,
            XenForo_Link::buildPublicLink('team/training'),
            null);
    }

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Para variar.. sigo con este error:

  • The existing data required by the data writer could not be found.
  • The field 'player_id' was not recognised.
  • The field 'training_group' was not recognised.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Prueba así. Primero con el código que está tachado (y sin lo que va luego en negrita y azul) y, si no funciona, con lo de negrita y azul. Lo de probar primero con lo tachado es porque pasabas $input que la había decapitado (no existía, lo siento por no haberme fijado) y es probar si rula así. Está entre /* y */
Datawriter
Insertar CODE, HTML o PHP:
class XenForo_DataWriter_Player extends XenForo_DataWriter
{
    protected function _getFields()
    {
        [B]return[/B] array(
        'xf_player' => array(
            'player_id'    => array( 'type' => self::TYPE_UINT, 'autoIncrement' => true ),
            'training_group'                => array('type' => self::TYPE_UINT,    'required' => false, 'default' => ''),
        )
 
        );
    }
 
    /**
    * Gets the actual existing data out of data that was passed in. See parent for explanation.
    *
    * @param mixed
    *
    * @see XenForo_DataWriter::_getExistingData()
    *
    * @return array|false
    */
    protected function _getExistingData($data)
    {
        if (!$playerId= $this->_getExistingPrimaryKey($data, 'player_id'))
        {
            return false;
        }
 
        return array('xf_player' => $this->_getPlayerModel()->getPlayer($playerId));
 
    }
 
    protected function _getUpdateCondition($tableName)
    {
        return 'player_id = ' . $this->_db->quote($this->getExisting('player_id'));
    }
 
    /**
    * @return XenForo_Model_Players
    */
    protected function _getPlayerModel()
    {
        return $this->getModelFromCache('XenForo_Model_Player');
    }
}
Controller
Insertar CODE, HTML o PHP:
    public function actionTrainingPlayerUpdate ()
    {
        $visitor = XenForo_Visitor::getInstance();
        if (!$visitor->get('user_id')) {
            return $this->responseError(new XenForo_Phrase('cannot_edit_training'));
        }
        $userId = $this->_input->filterSingle('user_id', XenForo_Input::UINT);
 
        [B]$playerId = $this->_input->filterSingle('player_id', XenForo_Input::UINT);[/B]
[B]        $trainingGroup = $this->_input->filterSingle('training_group', XenForo_Input::[/B][COLOR=#0000ff][B]UINT[/B][/COLOR][B]);[/B]
 
[S]        /*$dw = XenForo_DataWriter::create('XenForo_DataWriter_Player');[/S]
[S]        $dw->setExistingData([B]$playerId, $trainingGroup[/B]);[/S]
[S]        $dw->bulkSet(array([/S]
[S]            'player_id'    => [B]$playerId[/B],[/S]
[S]            'training_group' => [B]$trainingGroup[/B],[/S]
[S]        ));[/S]
[S]        $dw->save();*/[/S]
 
[COLOR=#0000ff][B]        $acierto = $this->_getDb()->fetchRow('[/B][/COLOR]
[COLOR=#0000ff][B]            UPDATE `xf_player`[/B][/COLOR]
[COLOR=#0000ff][B]          SET `training_group`='$trainingGroup'[/B][/COLOR]
[COLOR=#0000ff][B]            WHERE player_id = '.$playerId);[/B][/COLOR]
[COLOR=#0000ff][B]        if ($acierto) {[/B][/COLOR]
[COLOR=#0000ff][B]        return $this->responseRedirect([/B][/COLOR]
[COLOR=#0000ff][B]            XenForo_ControllerResponse_Redirect::SUCCESS,[/B][/COLOR]
[COLOR=#0000ff][B]            XenForo_Link::buildPublicLink('team/training'),[/B][/COLOR]
[COLOR=#0000ff][B]            null);[/B][/COLOR]
[COLOR=#0000ff][B]        } else {[/B][/COLOR]
[COLOR=#0000ff][B]                return false;[/B][/COLOR]
[COLOR=#0000ff][B]        }[/B][/COLOR]
    }

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Esto por fin avanza :)

El error "gordo" era haber comido el return en el datawriter, la verdad es que se me pasó de largo y así normal que no devolviese nada.
Ahora, para ir centrando más las cosas, justamente tenía el código como lo tienes tachado, y funciona bien en el último caso, por lo que hay un error por el medio con el tema de los array (creo que no se debe hacer un filterSingle al leer un montón de datos y guardarlos en un array, pero aún no me sale bien). Si se te ocurre algo avísame, voy a ir probando varias maneras mientras :)
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Sigo pegándome con esto, agradecería si alguien me puede echar una mano :)
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Estoy en una racha de mucho trabajo y no puedo más allá de lo que me acuerdo.

Todo pasa.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Dado que no encuentro la manera, voy a la versión 2.0, hardcoded y sin bucles. Como voy a limitar a 20 el número máximo de campos, hago un count de los que tienen y pongo los 20 campos a mano, con un if en cada uno para mostrarlo si es que el count es mayor que el número anterior.
Me explico, el template ahora es así:
Insertar CODE, HTML o PHP:
<tr>
<xen:if is="{$number} > 1">
      <td> <label for="ctrl_custom_title">{$players.2.name} {$players.2.surname}:</label> </td>
              <td>  <select name="training_group_2" class="textCtrl OptOut" id="ctrl_style_id" autofocus="on">
                        <option value="1">1</option>
                        <option value="2">2</option>
                    </optgroup>
                </select></td>
  <td> {$players.2.training_group}</td>
    <input type="hidden" name="player_id_2" value="{$players.2.player_id}" />
</xen:if>
</tr>
Es el ejemplo del caso número 2. Así es muy fácil recibir los datos, cada uno va directamente con un nombre distinto y se identifica bien. Ahora viene el problema, al querer hacer el update en la db, me da error. Exactamente este error:
Mysqli statement execute error : Incorrect integer value: '' for column 'team_id' at row 1

Que es rarísimo porque el team_id no lo uso en ninguna parte, tan sólo es un campo más de la tabla, pero ni siquiera es key. Intuyo que es por el guardado, ya que probé alguna forma distinta y no daba error pero no funciona. Actualmente lo da y lo tengo así:
Insertar CODE, HTML o PHP:
        $number = ($this->getModelFromCache('XenForo_Model_Teams')->getNumberOfPlayers($userId));
 
        if ($number > 0){
        $player_id_1 = $this->_input->filterSingle('player_id_1', XenForo_Input::UINT);
        $training_group_1 = $this->_input->filterSingle('training_group_1', XenForo_Input::UINT);
        }
        if ($number > 1){
        $player_id_2 = $this->_input->filterSingle('player_id_2', XenForo_Input::UINT);
        $training_group_2 = $this->_input->filterSingle('training_group_2', XenForo_Input::UINT);
        }
... hasta 20 ...
 
        $dw = XenForo_DataWriter::create('XenForo_DataWriter_Player');
        if ($number > 0){
        $dw->setExistingData($player_id_1);
        $dw->set('training_group', $training_group_1);
        }
        if ($number > 1){
        $dw->setExistingData($player_id_2);
        $dw->set('training_group', $training_group_2);
        }
 
... hasta 20 ...
 
        $dw->save();
 
        return $this->responseRedirect(
            XenForo_ControllerResponse_Redirect::SUCCESS,
            XenForo_Link::buildPublicLink('team/training'),
            null);
    }

Probé a hacer lectura y salvado en cada caso (en el if de lectura ir haciendo el save) pero no funciona. No da error, pero no guarda.
Supongo que será cosa de que estoy intentando actualizar 20 filas con un sólo dw, ya que lo que si soy capaz es de actualizar varios campos de una fila con un sólo dw. ¿Alguna idea? Tanto para que funcione esto o para hacer que funcione con el foreach y el array de lectura, preferiblemente prefiero el del foreach pero con esto me puedo ir apañando.
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Pienso que es mejor usar el switch en vez del if. ¿Motivo? Si $number = 3, entra en 0, 1, 2 y 3, solapándose las funciones.
Insertar CODE, HTML o PHP:
        $number = ($this->getModelFromCache('XenForo_Model_Teams')->getNumberOfPlayers($userId));
 
      switch $number {
                case '1':
                        $player_id_1 = $this->_input->filterSingle('player_id_1', XenForo_Input::UINT);
                        $training_group_1 = $this->_input->filterSingle('training_group_1', XenForo_Input::UINT);
                        break;
                case '2':
                        $player_id_2 = $this->_input->filterSingle('player_id_2', XenForo_Input::UINT);
                        $training_group_2 = $this->_input->filterSingle('training_group_2', XenForo_Input::UINT);
                        break;
                case '3': ...
                        ... hasta 20 ...
        }
Al recibir el error: Mysqli statement execute error : Incorrect integer value: '' for column 'team_id' at row 1
es porque presentas algún valor como entero (integer) y debiera ser cadena o viceversa. Recupera los datos que faltan y guarda todos juntos (los obtenidos con los que se actualizan). ¿Da el error?
Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Ahora le echo un ojo, en teoría siempre devuelvo un entero en team_id. De todas formas a saber dónde lo busca porque no lo uso para nada en el update.

Sobre lo otro, uso el if porque quiero que entre en todos los casos, con el switch sólo entraría en el $number, de esta forma recorre todos los casos. Es un foreach casero :)
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
No le paso team_id por ninguna parte :/

Puede ser el error por eso de crear sólo llamar una vez al datawriter y usar el save (que creo que es lo lógico al tener sólo un botón de guardar)? Si creo la llamada al dw y guardo el resultado dentro de cada if (por lo que serían 10 veces) y elimino el general, no da ningún error, pero no guarda.
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Nada, no consigo hacer esto :/

La verdad es que necesito ayuda, porque lo de hacer foreach usando sólo un botón de salvar para toda la información lo necesito usar en varios sitios, y este es el más simple de todos..
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Siento no poder echarte una mano m´ñas profunda pero ando liadísimo de trabajo. Si puedes, mándame un mp con un enlace al complemento que quieres hacer para ver por donde meterle mano.

Salud2
 

SmauG

XenForoUser
Mensajes
86
Puntuación de reacciones
9
Puntos
8
Bufff...

Inspiración total hoy.. ARREGLADO! :D

PHP simple del todo.. no sé por qué no me fué antes. Simplemente es mandar desde el template un array ([] al final del nombre), leerlo en el controlador con tipo ARRAY_SIMPLE y hacer un bucle de guardado, creando, modificando y salvando el valor todo dentro del bucle (osea que llamas al datawriter, lo modificas y guardas n veces).

Qué chorrada y cuanto tiempo estuve probando cosillas.. ya quedé contento :D
 
Estado
Cerrado para nuevas respuestas
Arriba