Message-ID: <2123084345.379372.1711726501112.JavaMail.root@confluence-doc2-production> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_379371_1450146075.1711726501107" ------=_Part_379371_1450146075.1711726501107 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html Cap=C3=ADtulo 6 - Creaci=C3=B3n - Formulario En L=C3=ADnea Remot= o

Cap=C3=ADtulo 6 - Creaci=C3=B3n - Formulario En L=C3=ADnea Remoto

Creaci=C3=B3n - Formulario En = L=C3=ADnea Remoto

=20

Objetivo: una aplicaci=C3=B3n web para enumerar y crear= un nuevo cliente.
Dificultad: **

=20

Preparaci=C3=B3n

=20

Copie el archivo list_the_clients.php de la Secci=C3=B3n 3.= 3 en un archivo denominado C-CRUD.php en la ra=C3=ADz de su se= rvidor web.

=20

La adici=C3=B3n de recursos puede ser comparada a una actualizaci=C3=B3n= de un elemento vac=C3=ADo.

=20

Pero, =C2=BFc=C3=B3mo recuperamos un XML formateado como un cliente de v= ac=C3=ADo?

=20

En el servicio web, existe un m=C3=A9todo para recuperar un XML vac=C3= =ADo. Es accesible a trav=C3=A9s de una URL formateada:

=20
=20

Es posible reemplazar el valor de r=C3=A9gimen de par=C3=A1metro "blank"= con "synopsis" para obtener m=C3=A1s informaci=C3=B3n sobre los campos del= recurso. http://mitienda.com/api/(resource nombre)?schema= =3Dblank

=20

Como vimos en la Secci=C3=B3n 3.3 (Enumeraci=C3=B3n de clientes), es pos= ible crear una matriz de par=C3=A1metros de "get", "resource" y "id". Tambi= =C3=A9n es posible especificar s=C3=B3lo una URL de esta manera:

=20
=20
$xml =3D $webService->get( array( 'url' =3D> 'http://mystore.com/api/=
customers?schema=3Dblank' ) );
=20
=20

Aqu=C3=AD, tenemos la variable XML completa de un cliente de vac=C3=ADo.=

=20
=20
<prestashop>
  <customer>
    <id_default_group/>
etc...
=20
=20

A partir del archivo XML recuperado:

=20

Luego podemos, gracias a los muchos campos que tenemos, crear un formula= rio relacionado.

=20

Obtenci=C3=B3n de todos los campos:

=20
=20
$resources =3D $xml->children()->children();
=20
=20

Ruta de todos los campos y parte de la creaci=C3=B3n din=C3=A1mica de ca= mpos de formulario en una tabla:

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

Una vez que los datos se pasan en POST, combinamos los datos enviados co= n el archivo XML en blanco, la cual es la misma t=C3=A9cnica utilizada para= la actualizaci=C3=B3n de los datos.

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

Llamar al servicio web es similar a lo que hemos visto anteriormente:=20

=20
$opt =3D array( 'resource' =3D> 'customers' );
$opt ['xml' ] =3D $xml->asXML();
$xml =3D $webService->add( $opt );
=20
=20

Ahora cree un script que a=C3=B1ade un cliente. Recuerde que algunos cam= pos son obligatorios, as=C3=AD que no se olvide de rellenarlos.

=20

Si tiene problemas, observe el c=C3=B3digo para 3-Create.php.

------=_Part_379371_1450146075.1711726501107--