Mam dość skomplikowany problem, który postaram się możliwie jasno naświetlić.
Otóż mam skrypt z zamówieniami, do którego dorzuciłem jeszcze jedną modyfikację opartą na klasach.
I aktualnie chciałbym do jednej funkcji w klasie wpisywać dane z bazy danych które oczywiście będą zależne od id głównego.
Skrypt wywołujący wygląda mniej więcej tak:
$approve = $_POST['approve']; $ShipmentDigest = $_POST['ShipmentDigest']; // If the form is filled out go get a rate from if ($accessNumber != '' && $username != '' && $password != '') { $Connect = new ("$accessNumber","$username","$password"); $Connect->setTemplatePath('xml/'); $Connect->setTestingMode(1); // Change this to 0 for production $Ship = new Ship($Connect); ?> <?php if ($approve == 'approve shipment') { // echo $Ship->responseXML; $responseArray = $Ship->responseArray(); $htmlImage = $responseArray['ShipmentAcceptResponse']['ShipmentResults']['PackageResults']['LabelImage']['GraphicImage']['VALUE']; } else { $responseArray = $Ship->responseArray(); } ?> <form action="" method="POST"> <input type="submit" name="approve" value="approve shipment" /> <input type="hidden" name="ShipmentDigest" value="<?php echo $responseArray['ShipmentConfirmResponse']['ShipmentDigest']['VALUE']; ?>" /> </form> <?php } ?>
A Klasa Ship.php wygląda tak:
<?php class Ship { var $buildRequestXML; var $xmlSent; var $responseXML; var $ShipmentDigest; function Ship($Obj) { // Must pass the object to this class for it to work $this-> = $Obj; } function buildRequestXML($zmienna) { $xml = $this->->access(); $ShipmentConfirmRequestXML = new xmlBuilder(); $ShipmentConfirmRequestXML->push('ShipmentConfirmRequest'); $ShipmentConfirmRequestXML->push('Request'); $ShipmentConfirmRequestXML->push('TransactionReference'); $ShipmentConfirmRequestXML->element('CustomerContext', '-php'); $ShipmentConfirmRequestXML->element('XpciVersion', '1.0001'); $ShipmentConfirmRequestXML->pop(); $ShipmentConfirmRequestXML->element('RequestAction', 'ShipConfirm'); $ShipmentConfirmRequestXML->element('RequestOption', 'nonvalidate'); $ShipmentConfirmRequestXML->pop(); // end Request $ShipmentConfirmRequestXML->push('Shipment'); $ShipmentConfirmRequestXML->push('Shipper'); $ShipmentConfirmRequestXML->element('Name', 'wartosc'); $ShipmentConfirmRequestXML->element('AttentionName', 'wartosc'); $ShipmentConfirmRequestXML->element('ShipperNumber', 'W9V457'); $ShipmentConfirmRequestXML->push('Address'); $ShipmentConfirmRequestXML->element('AddressLine1', 'wartosc'); $ShipmentConfirmRequestXML->element('City', 'wartosc'); $ShipmentConfirmRequestXML->element('StateProvinceCode', ''); $ShipmentConfirmRequestXML->element('PostalCode', '31444'); $ShipmentConfirmRequestXML->element('CountryCode', 'PL'); itd.
I teraz chodzi mi o to żeby stworzyć zapytanie które w takie miejsca jak np.
$ShipmentConfirmRequestXML->element('AddressLine1', 'wartosc');
wpisywało zamiast 'wartość' moją zmienną z bazy danych.
Kombinowałem już żeby poprzez wpisanie więcej zmiennych w
function buildRequestXML($zmienna) i wyświetlanie ich z tamtąd, ale niestety nie działa (przy jednej zmiennej działa przy wielu nie)
Więc alternatywnie zrobiłem tak:
function buildRequestXML($zmienna) {
$rs_settings=mysql_query("SELECT * FROM zamowienia WHERE zamowienie='$zmienna'");
while($rs = mysql_fetch_array($rs_settings)) {
$adres=$rs['adres'];
}
i próbowałem władować te wartości ale również nic z tego.
Tak więc prosiłbym o pomoc
