Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

[Ajuda] Retornar Array key => Value

$
0
0
Boa tarde a todos,

Estou a tenta retornar um array key => Value de um servidor soap em php, mas não estou a conseguir, nesse sentido solicitava a vossa ajuda.
O objecto é que uma interface php receba um array com informações para preencher uma combo box automaticamente sendo que os dados estão numa base de dados.

A minha configuração é a seguinte:

Interface cliente faz um pedido ao web service soap:

Código (PHP):
$result = $client->call('fill_veiculo');
echo '<pre>';
print_r($result);
echo '</pre>';
echo "Veiculos: <select name='veiculos'>";
foreach ($result as $key => $value){
   echo "<option value=".$key.">".$value."</option>";
}
echo "</select>";
echo "<input type='submit' name='pesquisar' value='Pesquisar'>";

No web service soap tenho a função registada da seguinte forma:

Código (PHP):
$server->register('fill_veiculo',               // method name
        array(),                                                        // input parameters
        array('return' => 'tns:ArrayOfString'),   // output parameters
        'urn:transporteswsdl',                          // namespace
        'urn:transporteswsdl#fill_veiculo',  // soapaction
        'rpc',                                                          // style
        'encoded',                                                      // use
        'Says hello to the caller'                      // documentation
        );

A função propiamente dita é:

Código (PHP):
function fill_veiculo(){
          $conn = mysqli_connect ("localhost","root","master","engenhariasoftware");
          $sql = "SELECT * FROM Veiculo;";
          $result = mysqli_query ($conn, $sql);
          $arr = array();
          while ($row = mysqli_fetch_assoc($result)){
                $arr[] = array('id' => $row["idVeiculo"], "matricula" => $row["matricula"]);
                //$arr = array('1' => 'teste');
                //$arr = array('return' => array($row["idVeiculo"] => $row["matricula"],));
          }
          //$result = mysql_fetch_array($arr);
          mysqli_close ($conn);

          return $arr;
        }

O que está a retornar como saída de dados é:

Array
(
[faultcode] => SOAP-ENV:Server
[faultactor] =>
[faultstring] => unable to serialize result
[detail] =>
)

Acham que me podem ajudar a perceber o que se passa aqui?

Obrigado.

Viewing all articles
Browse latest Browse all 14700