2012-06-29 59 views
0

我對jQuery &網絡開發非常陌生。我試圖使用jQuery的「.getScript()」方法來加載一對寫在特定PHP文件中的JavaScript腳本,但我想我錯過了一些東西。 (注:我注意到,看起來就像他們幫我的潛力幾個不同的問題,但沒有做到。如果有一個你知道的,隨意點我在這個方向感謝。)從PHP腳本調用JavaScript函數使用jQuery getScript

當我在Firebug中調試它,命中「.getScript()」&然後跳轉到下一行,看似沒有執行。
以下是我正在努力做到這一點:

jQuery.getScript("relative/path/to/script/phpScript.php", function(){ 
    alert("I'm HERE!"); 
    setValues(); // JavaScript function that's written by phpScript.php 
}); 

在這種情況下,正在由「phpScript.php」文件和我的「警報()」產生的JavaScript的永遠不會被運行,但我米不知道爲什麼。有任何想法嗎?
我確實注意到,在另一個問題中,我收到了某種解析錯誤。我不知道如何解決這個問題。下面是該代碼:

jQuery(document).ajaxError(function(event, request, settings){ 
     alert('error loading: ' + request.status + "\nevent: "+ event); 
     for (var key in request){ 
      if (request.hasOwnProperty(key)) { 
       alert(key + " -> " + request[key]); 
      } 
    } 
}); 

順便說一句,我們正在與運行jQuery的 「jQuery.noConflict();」設置,這就是爲什麼我不使用簡寫「$()」符號。

這裏是從響應體中getScript加入(片段從GET調用):

<html><script type="text/javascript"> 
function setValues() 
    jQuery("#formname").text(window.formNAME); 
    jQuery("#Form_Path").text(window.formPATH); 
    jQuery("#Form_DB").text(window.formDB); 
    jQuery('#pertaining_to').text(window.pertainNAME); 
    jQuery("#Pertain_To_ID").text(window.pertainID); 
    jQuery("#Form_ID").text(window.formID); 
    jQuery("#Field_ID").text(window.fieldName); 
} 
</script> 

<head> 

由於提前,
馬克

+0

'setValues()'從另一個腳本開始工作嗎?當你試圖getScript()時,你能發佈你得到的響應(從firebug net面板)嗎? – prodigitalson

+0

@prodigitalson - 是的,它似乎工作。我已經將getScript()中的GET調用的響應主體部分移動到了我的問題中。它看起來正確,所以看起來該腳本應該可用。 – SecondSun24

回答

4

如果你加載JS腳本,嘗試寫作他們爲離散功能集成到一個.js文件(如:jsscript.js),然後使用這個HTML行:

<script type='text/javascript' src='jsscript.js'></script> 

然後,你可以調用的F在不使用.getScript()的情況下自行裁剪。 (當然,你需要把上面的行放在你調用腳本的位置之前)。

這似乎是一個比你當前嘗試的更乾淨的方法。

編輯:鑑於您目前的情況(即:生成JS腳本和調用腳本的PHP頁面的PHP頁面),也許您可​​以這樣做?

//PHP page that generates the scripts 
function gen_script() { 
    //JS script generated into $script variable 
    return $script; 
} 

//PHP page that calls the scripts 
include ('generate.php'); 
echo gen_script(); 
+0

感謝您的回覆。 你說得對。這將是最簡單的。但是,我試圖引用的腳本的設置方式是在生成/寫入腳本的PHP文件中。我的jQuery方法所在的文件實際上是一個PHP文件,該文件由每個必須處理任何用戶輸入的其他文件引用。因此,將其包含在整個文件中會對網站的其他部分產生負面的性能影響。這就是爲什麼我試圖用「getScript()」來做到這一點。 – SecondSun24

+0

我明白了。我的回答中的新代碼是否代表您的情況? – Palladium

+0

我試過了你的新建議,但沒有改變。 我不知道我是否試圖以不受支持的方式使用getScript(),或者以不打算使用的方式使用getScript()。不過,我認爲,只要JS已經寫好了,我就可以訪問它。我想不是這種情況。 無論如何,我感謝你試圖幫助我,儘管我可能不得不休息一下。 謝謝你一堆。 – SecondSun24

0

我想你可能只是編輯phpScript.php文件

function setValues(){ 
    jQuery("#formname").text(window.formNAME); 
    jQuery("#Form_Path").text(window.formPATH); 
    //... 
} 

這將是確定。