2016-07-03 73 views
0

兩個的jQuery代碼PHP代碼在同一個PHP文件(不是兩個單獨的文件)如何在相同頁面中將jQuery變量發佈到PHP?

我想將jQuery變量POST到php代碼中。

但它運行php文件時顯示一些錯誤(「未定義的索引」)。

PHP文件如下(test.php)。

<?php 
    $country = $_POST['userCountry']; 
    $ip = $_POST['userIp']; 

    echo $country; 
    echo $ip; 
?> 

<html> 
<head><title></title> 
    <script src = "jquery.min.js"></script> 
    <script> 
     $.getJSON("http://freegeoip.net/json/", function(data) { 
      var country = data.country_name; 
      var ip = data.ip; 

      $.ajax({ 
       method:"POST", 
       url:"test.php", 
       data:{userCountry:country, userIp:ip} 
      }); 
     }); 
    </script> 
</head> 
<body></body> 
</html> 
+0

@icecub,getJSON的第一個參數是上面例子中傳遞的URL。 – Rayon

+0

你的頁面的URL和'getJSON'中傳遞的是不同的.. – Rayon

回答

5
<?php 
if(!empty($_POST)){ 
    $country = $_POST['userCountry']; 
    $ip = $_POST['userIp']; 

    echo $country; 
    echo $ip; 
} 
?> 

<html> 
<head><title></title> 
    <script src = "jquery.min.js"></script> 
    <script> 
     $(document).ready(function(){ 
     $.getJSON("http://freegeoip.net/json/", function(data) { 
      var country = data.country_name; 
      var ip = data.ip; 
      $.ajax({ 
       method:"POST", 
       url:"test.php", 
       data:{userCountry:country, userIp:ip}, 
       success:function(result){ 
        $('body').html(result); 
       } 

      }); 
      }); 
     }); 
    </script> 
</head> 
<body></body> 
</html> 

試試看看這個代碼。剛剛測試好

+0

它的工作原理..非常感謝你! – AnushkaM

0

我不知道這是通緝的結果...
但它看起來像它。所以,試試這個:

(編者)

<html> 
<head><title></title> 
    <script src = "https://code.jquery.com/jquery-1.12.0.min.js"></script> 

</head> 
<body> 
<div id="result1"></div> 
<br> 
<div id="result2"></div> 

<script> 
$(document).ready(function(){ 
    var country; 
    var ip; 

    $.getJSON("http://freegeoip.net/json/", function(data) { 
     country = data.country_name; 
     ip = data.ip; 
     console.log(country+" "+ip); 

     $("#result1").append(country); 
     $("#result2").html(ip); 
    }); 
}); 
</script> 

</body> 
</html> 

注意,沒有PHP或$就......只有$的getJSON。

+0

感謝您的快速回復。但PHP必須在那裏進一步實現。然而,這將在稍後有用.. – AnushkaM

+0

好吧...有了這個,你可以「結果」,組織,格式等「玩」一下...然後將其發送到PHP頁面。順便說一句,感謝讓我發現有用的這個鏈接(freegeoip)。 ;) –

0

這是因爲PHP在服務器上編譯,而jQuery在客戶端上編譯。你保存在同一個文件中。所以在ajax運行的時候,PHP已經被編譯了,因此給了你未定義的消息。爲PHP部分創建單獨的文件,或使用isset(),並在數據提交後使用jQuery刷新頁面。

+0

感謝您的快速回復。您的建議將在以後的實施中有所幫助。 – AnushkaM

相關問題