Message-ID: <1683335993.379210.1711701901073.JavaMail.root@confluence-doc2-production> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_379209_840276549.1711701901067" ------=_Part_379209_840276549.1711701901067 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Objetivo: Una aplicaci=C3=B3n web para enumerar y actua=
lizar la informaci=C3=B3n del cliente.
Dificultad: ***=
Duplicar archivo lista_de_clientes.php
desde la Secci=C3=B3=
n 3.3 a un archivo llamado U-CRUD.php
en la ra=C3=ADz de su se=
rvidor web.
La actualizaci=C3=B3n de los recursos a trav=C3=A9s del servicio web es = complejo, por lo que explicaremos en primer lugar su funcionamiento.
Podemos ver que el diagrama est=C3=A1 dividido en 2 etapas:
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 lla=
mar a "edit" para actualizar el recurso.
Tenga en cuenta que pudieramos haber modificado de otro modo mediante el= env=C3=ADo de un documento XML utilizando Javascript y por lo tanto, no ha= ber utilizado "get" en este proceso.
Recuperar el archivo XML y mostrar el formulario:
// Defin= e el recurso=20 $opt =3D array( 'resource' =3D> 'customers' ); // Definie el ID del recurso a modificar $opt[ 'id' ] =3D $_GET[ 'id' ]; // Llama al servicio web, recuperar el archivo XML $xml =3D $webService->get( $opt ); // Recupera elementos de recurso en una variable (table) $resources =3D $xml->children()->children(); // formulario del cliente=20
En este caso, la llamada es similar a la obtenci=C3=B3n de datos. Esta e= s la llamada que nos permitir=C3=A1 crear el formulario.
Vamos a generar el formulario de actualizaci=C3=B3n autom=C3=A1tica.
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 diagram=
a, el formulario se muestra como: ?id =3D "ID de cliente"
=
Por lo tanto obtendremos esto: $_GET[ 'id' ];
Podr=C3=ADamos haber hecho esto de manera diferente, por ejemplo, median= te la aprobaci=C3=B3n de esta identificaci=C3=B3n en POST, pero ver=C3=A1 q= ue este m=C3=A9todo va a simplificar el proceso que sigue.
Inicialmente, como se puede ver en la flecha "Note" en el diagrama, vamo= s a recuperar el archivo XML. Para ello, se llevar=C3=A1 a cabo la misma ll= amada que se hizo al crear el formulario.
Si ha especificado, como se indic=C3=B3 anteriormente, el destino del fo= rmulario con un id, su llamada deber=C3=ADa haberse realizado y el formular= io se vuelve a mostrar.
Ayuda para la creaci=C3=B3n de un formulario:
foreach = ( $resources as $key =3D> $resource ){ echo '<tr><th>' . $key . '</th><td>'; echo '<input type=3D"text" name=3D"' . $key . '" value=3D"' . $resourc= e . '"/>'; echo '</td></tr>'; }=20
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=C3=B3n:
foreach = ( $resources as $nodeKey =3D> $node ) { $resources->$nodeKey =3D $_POST[ $nodeKey ]; }=20
Ahora tenemos un archivo XML actualizado. Ahora s=C3=B3lo tenemos que en= viarlo.
Ejemplo de una actualizaci=C3=B3n:
$opt =3D= array( 'resource' =3D> 'customers' ); // Definici=C3=B3n del recurso $opt[ 'xml' ] =3D $xml->asXML(); //Definici=C3=B3n del archivo XMl $opt[ 'id' ] =3D $_GET[ 'id' ]; // Definici=C3=B3n del ID a modificar // Calling asXML () returns a string corresponding to the file $xml =3D $webService->edit( $opt ); // Call=20
Ahora, en su secuencia de comando U-CRUD.php
, trate de modi=
ficar un cliente con un ID definido en el c=C3=B3digoy luego hacerlo para t=
odos los clientes.
Revise usando R-CRUD.php
ha cambiado y luego procesar el ID=
de cliente.
Si tiene problemas, observe el c=C3=B3digo 2-update.php
.