2011-01-18 4 views
3

Я получил форму здесь сказать - http://example.com/palreg.phpCurl возвращение XML или JSON

Когда люди зарегистрироваться, я буду посылать их по электронной почте со ссылкой, что позволит им изменить свои данные (я знаю, что это сумасшедший способ делать вещи, но я работаю над чьим-то кодом, поэтому не против), например, url как таковой http://example.com/palreg.php?paliD=1234, и когда они перейдут на эту страницу, форма будет заполнена их информацией, чтобы они могли вносить изменения.

Теперь проблема заключается в том, что БД находится в другом месте, и информация должна быть передана на этот сайт, чтобы выполнить выберите действие, чтобы сделать так, я использую CURL для отправки информации, как так

$url = "http://example2.com/processXML.php"; 
$xmlStr will be like this 

<table>tab_name</table> 
<action>select</action> 
<palid>1234</palid> 

$ch=curl_init(); 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'xmlstr='.$xmlStr); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$data = curl_exec($ch); 

На другом конце (http://example2.com/processXML.php) Я конвертирую xml в массив и выполняю запрос, чтобы выбрать информацию о приятеле на основе отправленного id.

Настоящий вопрос заключается в том, как отправить назад полученную информацию о приятеле (как xml или json или array), чтобы я мог заполнить форму возвращаемыми данными.

Также можно сделать return $dataArray; в processXML.php и уметь его захватить?

OK, чтобы сделать вещи немного яснее, что я делаю в processXML.php является получить набор результатов и сделать это

print json_encode($resultArray); 

не должен напечатать или вернуть

Спасибо, и дайте мне знать, если все не ясно.

+0

Пожалуйста, форматировать код в блоках: http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks –

+0

Я думаю, что ваш вопрос содержит ответ , Верните JSON или XML и проанализируйте его в php-массиве. – Aston

ответ

5

просто кодируйте его так, как вы хотите, и повторите его на странице. ваш $ data = будет содержать эхо-содержимое. Личным предпочтением было использование JSON, поскольку его так легко бросить. как в

//Bunch of DB stuff.. 
$row=mysql_fetch_however_you_handle_it(); 
echo json_encode($row); 


//on your receiving end, that just did the cURL send, 
$row=json_decode($data,true);//decode the JSON straight into an array... 
+0

Удивительный! Спасибо, кучка! – Woppi

1

Когда вы извлекаете информацию из базы данных и обрабатываете ее в processXML.php, добавьте результаты в массив, используйте json_encode(), чтобы преобразовать массив в JSON, а затем повторите результаты на странице.

+1

И отправьте соответствующий заголовок Content-Type тоже для полноты ... –

1

Просто выделите данные, которые необходимо отправить обратно в форму в выбранном вами формате, и выберите этот ответ в файле thepalreg.php.

Смежные вопросы