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:
- Conseguir el recurso a un id definido (1 in the diagram) y crear el formulario.
- Actualización de recursos.
Note |
---|
La flecha apunta a "get", lo que corresponde a un recurso a obtener. |
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:
Code Block |
---|
// 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:
Code Block |
---|
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:
Code Block |
---|
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:
Code Block |
---|
$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
.