Message-ID: <1070192962.375782.1710827164693.JavaMail.root@confluence-doc2-production>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_375781_718704164.1710827164688"
------=_Part_375781_718704164.1710827164688
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
Modification - Update client
Goal: A Web application to list and update customer inf=
ormation.
Difficulty: ***
Preparation
Duplicate file list_the_clients.php
from Chapter 3.3, renam=
e it to U-CRUD.php
, and put it at the root of your Web server.=
Updating resources via the web service is complex, so we will first expl=
ain its operation.
Sequence diagram representing how a resource is updated:
We can see that the diagram is divided into 2 parts:
- Getting the resource to a defined id (1 in the diagram) and creating of=
the form.
- Update resource.
Retrieving the XML file and display the form:
=20
// Defin=
e the resource
$opt =3D array('resource' =3D> 'customers');
// Define the resource id to modify
$opt['id'] =3D $_GET ['id'];
// Call the web service, recuperate the XML file
$xml =3D $webService->get( $opt );
// Retrieve resource elements in a variable (table)
$resources =3D $xml->children()->children();
// client form
=20
Here, the call is similar to data retrieval. It is this call that will e=
nable us to create the form.
We will generate the automatic update form.
For now, use HTML tags "input" as having as its "name" the name of the a=
ttribute, and as its "value" the value of the attribute.
In order not to lose the id for the second step according to the diagram=
, the form will show up as: ?id =3D "Customer Id"
Thus we will get it this way:
We could have done this differently, such as by passing this ID in a POST request, but you will see that this method will simplify the=
processing that follows.
Step =
2: Update the resource
Initially, as you can see from the "Note" arrow in the diagram, we will =
retrieve the XML file. For this, you will carry out the same call as you di=
d when you created the form.
If you have specified, as indicated above, the form destination with an =
id, your call should already be done and the form will be redisplayed.
Help for creating a form:
=20
foreach =
($resources as $key =3D> $resource) {
=09echo '<tr><th>' . $key . '</th><td>';
=09echo '<input type=3D"text" name=3D"' . $key . '" value=3D"' . $resour=
ce . '"/>';
=09echo '</td></tr>';
}
=20
Once the XML file is retrieved we need to modify the new data with data =
received by POST.
Path of the keys in the XML file and update values:
=20
foreach =
($resources as $nodeKey =3D> $node) {
=09$resources->$nodeKey =3D $_POST[$nodeKey];
}
=20
We now have an XML file updated. Now we just need to send it.
Example of an update:
=20
// Resou=
rce definition
$opt =3D array('resource' =3D> 'customers');=20
//XML file definition
$opt['putXml'] =3D $xml->asXML();
// Definition of ID to modify=20
$opt['id'] =3D $_GET[ 'id' ];=20
// Calling asXML() returns a string corresponding to the file
$xml =3D $webService->edit($opt);
=20
Now, in your U-CRUD.php
script, try to modify a customer wi=
th an ID defined in the code, then do it for all customers.
Check using R-CRUD.php
that the information has been change=
d and then process the Client ID.
If you have trouble, look at the code in the 2-update.php
s=
ample file.
------=_Part_375781_718704164.1710827164688
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/590e09cd058f6774566e818e131580c9
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
------=_Part_375781_718704164.1710827164688--