2014-10-28 158 views
0

我在使用ajax()函數時遇到了麻煩。我有一個形式的HTML文件,並有JavaScript代碼段:無法發送jQuery ajax()請求到php

<script> 
     $(document).ready(function(){ 
      $("form").submit(function(){ 
       var url = "xxx.php/"; 
       var param = $("#streetInput").serialize() + "&"; 
        param += $("#cityInput").serialize() + "&"; 
        param += $("#stateInput").serialize(); 

        htmlobj = $.ajax({ 
            url: url, 
            data: param, 
            type: 'GET', 
            dataType: 'JSON', 
            success: function(output) { 
             // parse the data here 
            }, 
            error: function() { 
            } 
            }); 
       }); 

     }); 
    </script> 

我想構建指向由GET方法指定的PHP文件的URL。但是,我不知道如何檢索通過xxx.php文件中的URL發送的參數。我不知道如何調試。我只是鍵入

<?php 
    echo $_GET("streetInput"); 
    echo $_GET("cityInput"); 
    ...... 
    $xml = simplexml_load_file($url); 
?> 

但它沒有工作。有人可以幫我嗎?我想通過URL給出三個參數到xxx.php,然後打印這些元素

在xxx.php文件中,我構造了一個API請求的URL並返回一個XML文件。我想將$ xml文件轉換爲JSON格式並返回到我的html文件。

+0

'回聲$ _GET'看看會發生什麼。 – AlienWebguy 2014-10-28 04:38:48

+1

嘗試使用$ _GET ['streetInput']代替。 – fvgs 2014-10-28 04:39:56

+1

而不是'serialize'每個輸入,爲什麼不在表單本身上使用'serialize'? – 2014-10-28 04:50:35

回答

0

更改您的JS代碼:

<script> 
     $(document).ready(function(){ 
      $("form").submit(function(){ 
       var url = "xxx.php"; 
       var param = $("#streetInput").serialize() + "&"; 
        param += $("#cityInput").serialize() + "&"; 
        param += $("#stateInput").serialize(); 

        $.ajax({url: url, data: param, type: 'GET'}); 
      }); 

     }); 
</script> 

或者,如果您有形式上只有這些領域,使用此:

<script> 
     $(document).ready(function(){ 
      $("form").submit(function(){ 
       var url = "xxx.php"; 
       var param = $(this).serializeArray(); //<- Or, .serialize() can also be used 

       $.ajax({url: url, data: param, type: 'GET'}); 
      }); 

     }); 
</script> 
+0

謝謝,它的工作原理。順便說一下,如果我在xxx.php中有一個JSON類型的數據,我該如何將其傳回?網站的整個過程如下:輸入地址並使用GET方法發送到xxx.php,然後xxx.php可以使用這些參數重建一些數據並將重建的數據傳回。 – HannibalCJH 2014-10-28 17:04:48

+0

然後,您可以使用'success'回調來捕獲該響應。在你的問題中添加這個,我也會爲此添加解決方案。 – 2014-10-28 17:21:15

+0

我已更新我的問題,感謝您的幫助 – HannibalCJH 2014-10-28 17:35:34