簡體   English   中英

使用jQuery getScript從PHP腳本調用JavaScript函數

[英]Call JavaScript Function From PHP Script Using jQuery getScript

總的來說,我對jQuery和Web開發非常陌生。 我正在嘗試使用jQuery的“ .getScript()”方法來加載用特定PHP文件編寫的幾個JavaScript腳本,但是我想我缺少了一些東西。 注:我注意到了幾個不同的問題,看起來它們有可能幫助我,但沒有一個問題。如果您知道一個問題,請隨時向我指出該方向。謝謝。)

當我在Firebug中調試此程序時,它會命中“ .getScript()”調用,然后跳到下一行,似乎沒有執行。
這是我要嘗試的方法:

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

在這種情況下,JavaScript是由“ phpScript.php”文件生成的,而我的“ alert()”則永遠不會運行,但是我不確定為什么。 有任何想法嗎?
我確實注意到,按照另一個問題的建議,我遇到了某種解析錯誤。 我不知道該怎么解決。 這是該代碼:

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.noConflict();”運行jQuery。 設置,這就是為什么我不使用簡寫“ $()”表示法的原因。

這是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>

提前致謝,
-標記

如果要加載JS腳本,請嘗試將它們作為離散函數寫入.js文件(例如:jsscript.js),然后使用以下HTML行:

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

然后,您可以直接調用函數本身,而無需使用.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();

我以為您可以將phpScript.php文件編輯為

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

沒關系的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM