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 Cap=C3=ADtulo 5 - Modificaci=C3=B3n - Actualizaci=C3=B3n de clie= nte

Cap=C3=ADtulo 5 - Modificaci=C3=B3n - Actualizaci=C3=B3n de cliente=

Modificaci=C3=B3n - Actu= alizaci=C3=B3n de cliente

Objetivo: Una aplicaci=C3=B3n web para enumerar y actua= lizar la informaci=C3=B3n del cliente.
Dificultad: ***=

Preparaci=C3=B3n

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:

  1. Conseguir el recurso a un id definido (1 in the diagram) y crear el for= mulario.
  2. Actualizaci=C3=B3n 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 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.

Paso 1: Obtenci=C3=B3n = de datos y creaci=C3=B3n del formulario

Recuperar el archivo XML y mostrar el formulario:

=20
// 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.

Paso 2: Actualizaci=C3=B3n del recurso

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:

=20
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:

=20
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:

=20
$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.

------=_Part_379209_840276549.1711701901067--