2013-06-04 60 views
0

我想調用並執行一段位於外部文件上的PHP代碼。我理解涉及jQuery的方式。這裏的是我到目前爲止的代碼:如何從Javascript腳本鏈接並執行PHP文件?

<html> 
<head> 
    <title>test</title> 
</head> 

<body> 

    <script src="jquery.js"></script> 
    <script language="javascript" type="text/javascript"> 
     $.post("ext.php", { name: "John", time: "2pm" }) 
     .done(function(data) { 
      alert("Data Loaded: " + data); }); 

     $(document).ready(function(){ 
    $(this).load('ext.php');}); 

    </script> 

</body> 

這裏是外部文件(ext.php):

<?php 
echo $_POST['name'] . ' and- ' . $_POST['time']; 
?> 

的代碼應打印屏幕上的變量nametime(以及在彈出窗口中)。彈出窗口工作正常,但代碼不會在屏幕上顯示可用的。

謝謝:)

+1

ext.php不等於ofek.php。在回調函數中,你傳遞給$ .post,在DOM中插入一些東西。你爲什麼期望這個把「變量放在屏幕上」? –

+1

嘗試$(「body」)。load(「ext.php」);或者更好的是DOM中的特定元素。 – Dave

回答

4

原諒我,如果你知道這個了,但如果你不這樣做:

你在你的例子,這是$.ajax() jQuery的方法的流線型使用$.post()。我建議使用這個更容易(但更大)的格式,直到你對AJAX非常有信心。 $.ajax()也允許你做比精簡(快速)$.post方法更多的工作。

我添加了幾個輸入框供您輸入一些信息。另外,你需要一個地方讓東西出現在屏幕上,所以我爲它創建了一個DIV。

Ajax將數據發佈到外部php文件,該文件處理它接收的數據,併發回答案。它看起來像這樣:

文件#1:

<html> 
    <head> 
     <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 

       $('#mybutt').click(function() { 
        var nom = $('#yername').val(); 
        var tim = $('#thetime').val(); 

        $.ajax({ 
         type: "POST", 
         url: "receiving_file.php", 
         data: 'name=' + nom + '&time=' +tim, 
         success:function(data){ 
          alert('This was sent back: ' + data); 
          $('#report').html(data); 
         } 
        }); //END ajax 

       }); //END click fn 

      }); //END document.ready 
     </script> 
    </head> 
<body> 

Name: <input type="text" id="yername"><br> 
Time: <input type="text" id="thetime"><br><br> 
<input type="button" id="mybutt" value="Go"> 
<br><Br> 
<div id="report"></div> 

文件#2:receiving_file.php

<?php 
    echo 'You entered: ' . $_POST['name'] . ' and- ' . $_POST['time']; 
+0

因爲它的第一個版本,我已經將其標記爲低質量。 :|現在好多了+1 :) – hek2mgl

0

可以使用後帶負載這樣,我想:

$(document).ready(function() { 
    $(this).load('ext.php', { 
     name: "john", 
     time: "2pm" 
    }, function (data) { 
     $('body').append(data); 
    }); 
}); 
0

試試這個:

<script type="text/javascript"> 
    $(document).ready(function(){   
     $.post("ext.php", { name: "John", time: "2pm" }).done(function(data) { 
      alert("Data Loaded: " + data); 
      $('body').html(data); 
     }); 
    }); 
</script>