Child pages
  • Capítulo 5 - Modificación - Actualización de cliente
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Modificación - Actualización de cliente

Objetivo: Una aplicación web para enumerar y actualizar la información del cliente.
Dificultad: ***

Preparación

Duplicar archivo lista_de_clientes.php desde la Sección 3.3 a un archivo llamado U-CRUD.php en la raíz de su servidor web.

La actualización de los recursos a través del servicio web es complejo, por lo que explicaremos en primer lugar su funcionamiento.

Diagrama de secuencia que representa cómo es actualizado un recurso:

Podemos ver que el diagrama está dividido en 2 etapas:

  1. Conseguir el recurso a un id definido (1 in the diagram) y crear el formulario.
  2. Actualización de recursos.

La flecha apunta a "get", lo que corresponde a un recurso a obtener.
Este paso es importante porque tenemos que obtener el archivo XML para que coincida con los datos enviados por el formulario antes de que podamos llamar a "edit" para actualizar el recurso.

Tenga en cuenta que pudieramos haber modificado de otro modo mediante el envío de un documento XML utilizando Javascript y por lo tanto, no haber utilizado "get" en este proceso.

Paso 1: Obtención de datos y creación del formulario

Recuperar el archivo XML y mostrar el formulario:

// Define el recurso 
$opt = array( 'resource' => 'customers' );
// Definie el ID del recurso a modificar
$opt[ 'id' ] = $_GET[ 'id' ];
// Llama al servicio web, recuperar el archivo XML
$xml = $webService->get( $opt );
// Recupera elementos de recurso en una variable (table)
$resources = $xml->children()->children();
// formulario del cliente

En este caso, la llamada es similar a la obtención de datos. Esta es la llamada que nos permitirá crear el formulario.

Vamos a generar el formulario de actualización automática.

Por el momento, usar etiquetas HTML "input" como su "name" el nombre del atributo, y como su "value" el valor del atributo.

Con el fin de no perder el id del segundo paso de acuerdo con el diagrama, el formulario se muestra como: ?id = "ID de cliente"
Por lo tanto obtendremos esto: $_GET[ 'id' ];

Podríamos haber hecho esto de manera diferente, por ejemplo, mediante la aprobación de esta identificación en POST, pero verá que este método va a simplificar el proceso que sigue.

Paso 2: Actualización del recurso

Inicialmente, como se puede ver en la flecha "Note" en el diagrama, vamos a recuperar el archivo XML. Para ello, se llevará a cabo la misma llamada que se hizo al crear el formulario.

Si ha especificado, como se indicó anteriormente, el destino del formulario con un id, su llamada debería haberse realizado y el formulario se vuelve a mostrar.

Ayuda para la creación de un formulario:

foreach ( $resources as $key => $resource ){
  echo '<tr><th>' . $key . '</th><td>';
  echo '<input type="text" name="' . $key . '" value="' . $resource . '"/>';
  echo '</td></tr>';
}

Una vez que el archivo XML se recupera tenemos que modificar los nuevos datos con los datos recibidos por POST.

Ruta de las claves en el archivo XML y valores de actualización:

foreach ( $resources as $nodeKey => $node ) {
  $resources->$nodeKey = $_POST[ $nodeKey ];
}

Ahora tenemos un archivo XML actualizado. Ahora sólo tenemos que enviarlo.

Ejemplo de una actualización:

$opt = array( 'resource' => 'customers' ); // Definición del recurso
$opt[ 'xml' ] = $xml->asXML(); //Definición del archivo XMl
$opt[ 'id' ] = $_GET[ 'id' ]; // Definición del ID a modificar
// Calling asXML () returns a string corresponding to the file
$xml = $webService->edit( $opt ); // Call

Ahora, en su secuencia de comando U-CRUD.php, trate de modificar un cliente con un ID definido en el códigoy luego hacerlo para todos los clientes.

Revise usando R-CRUD.php ha cambiado y luego procesar el ID de cliente.

Si tiene problemas, observe el código 2-update.php.

  • No labels