ajax php请求Web服务

时间:2013-08-07 07:26:48

标签: php ajax web-services

我需要使用ajax编写一个php代码来获取http://www.w3schools.com/webservices/tempconvert.asmx/FahrenheitToCelsius网络服务器的响应。下面是发布请求并获得响应的代码。因为它是一个帖子请求,网站得到刷新。没有刷新我需要回应。我不知道如何在ajax中做到这一点。请帮我。非常感谢。

    <?php
    if (isset($_POST['Fahrenheit'])&&$_POST['Fahrenheit']!=null) {
    $out = print_name($_POST['Fahrenheit']);
    }
    else {
     print_form();
    }

    function print_name($name) {
        $ch = curl_init();
        $far = 'Fahrenheit='.$name;
        curl_setopt($ch, CURLOPT_URL,"http://www.w3schools.com/webservices/tempconvert.asmx     /FahrenheitToCelsius");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$far);

        // http_build_query(array('postvar1' => 'value1')));

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $server_output = curl_exec ($ch);
        curl_close ($ch);
        echo 'It is: '.$server_output;
        return $server_output;
    }


    function print_form() {
      echo '
        <form method="post">
    <table>
      <tr>
        <td>Fahrenheit to Celsius:</td>
        <td>
        <input class="frmInput" type="text" size="30" name="Fahrenheit">
        </td>
      </tr>
      <tr>
        <td></td>
        <td align="right">
         <input name="cel" type="submit" value="Submit" class="button">
         </td>
      </tr>
    </form>
      ';
    }

请帮帮我。

1 个答案:

答案 0 :(得分:0)

既然你的问题是“请做我自己的功课”,我的回答指向一个好的网站,你可以做自己的作业:http://ajaxpatterns.org/XMLHttpRequest_Call

您要做的是在javascript中使用xmlHTTPRequest()对象将数据发布到网络服务器并阅读回复。

上面链接的页面有一个到演示的断开链接,这里是正确的:http://ajaxify.com/run/xmlHtttpRequestCall/

并且页面的来源非常有趣,例如请考虑以下代码段:

function createXMLHttpRequest() {
  try { return new XMLHttpRequest(); } catch(e) {}
  alert("XMLHttpRequest not supported");
  return null;
}
var xhReq = createXMLHttpRequest();
    xhReq.open("GET", "sumGet.php?figure1=5&figure2=1", false); //here method of sending data and server page where to send to
    xhReq.send(null);
    var serverResponse = xhReq.responseText;
    $("response").innerHTML = serverResponse;