Child pages
  • Capítulo 6 - Creación - Formulario En Línea Remoto

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Creación - Formulario En Línea Remoto

Objetivo: una aplicación web para enumerar y crear un nuevo cliente.
Dificultad: **

Preparación

Copie el archivo list_the_clients.php de la Sección 3.3 en un archivo denominado C-CRUD.php en la raíz de su servidor web.

La adición de recursos puede ser comparada a una actualización de un elemento vacío.

Pero, ¿cómo recuperamos un XML formateado como un cliente de vacío?

En el servicio web, existe un método para recuperar un XML vacío. Es accesible a través de una URL formateada:

Note

Es posible reemplazar el valor de régimen de parámetro "blank" con "synopsis" para obtener más información sobre los campos del recurso. http://mitienda.com/api/(resource nombre)?schema=blank

Como vimos en la Sección 3.3 (Enumeración de clientes), es posible crear una matriz de parámetros de "get", "resource" y "id". También es posible especificar sólo una URL de esta manera:

Code Block
$xml = $webService->get( array( 'url' => 'http://mystore.com/api/customers?schema=blank' ) );

Aquí, tenemos la variable XML completa de un cliente de vacío.

Code Block
<prestashop>
  <customer>
    <id_default_group/>
etc...

A partir del archivo XML recuperado:

Luego podemos, gracias a los muchos campos que tenemos, crear un formulario relacionado.

Obtención de todos los campos:

Code Block
$resources = $xml->children()->children();

Ruta de todos los campos y parte de la creación dinámica de campos de formulario en una tabla:

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

Una vez que los datos se pasan en POST, combinamos los datos enviados con el archivo XML en blanco, la cual es la misma técnica utilizada para la actualización de los datos.

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

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

Code Block
$opt = array( 'resource' => 'customers' );
$opt ['xml' ] = $xml->asXML();
$xml = $webService->add( $opt );

Ahora cree un script que añade un cliente. Recuerde que algunos campos son obligatorios, así que no se olvide de rellenarlos.

Si tiene problemas, observe el código para 3-Create.php.