2012-06-29 2 views
0

Я очень новичок в jQuery & веб-разработке в целом. Я пытаюсь использовать метод jQuery «.getScript()» для загрузки нескольких сценариев JavaScript, написанных в определенном PHP-файле, но я думаю, что что-то не хватает. (Примечание: я заметил несколько разных вопросов, которые выглядели как они имели потенциал, чтобы помочь мне, но никто не сделал Если есть тот, который вы знаете о, не стесняйтесь указать меня в этом направлении Спасибо...)Вызов функции JavaScript из скрипта PHP Использование 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 
}); 

В этом случае JavaScript генерируется с помощью файла «phpScript.php» и мой «боевой готовности()» никогда не будет работать, но я Не знаю, почему. Есть идеи?
Я заметил, что я получаю какую-то ошибку синтаксического анализа, следуя предложению в другом вопросе. Я не знаю, как это разрешить. Вот код, который:

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]); 
      } 
    } 
}); 

BTW, мы бежим JQuery с "jQuery.noConflict();" set, поэтому я не использую сокращенную «$()» нотацию.

Вот отрывок из тела ответа от вызова GET в getScript():

<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

does 'setValues ​​()' работает из другого скрипта вообще? Можете ли вы опубликовать тело ответа, которое вы получаете (с панели netbug net) при попытке 'getScript()'? – prodigitalson

+0

@prodigitalson - Да, это похоже на работу. Я переместил часть тела ответа из GET-вызова в getScript() в мой вопрос. Это похоже на то, что кажется правильным, поэтому кажется, что скрипт должен быть доступен. – SecondSun24

ответ

4

Если вы загружаете скрипты JS, попробуйте писать их как дискретные функции в .js файл (например: jsscript.js), а затем, используя этот HTML строку:

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

Тогда вы можете просто позвонить п сами утилиты без использования .getScript(). (Конечно, вам нужно поставить вышеприведенную строку до того момента, когда вы вызываете сценарии.)

Это похоже на гораздо более чистый способ сделать это, чем то, что вы сейчас пытаетесь сделать.

EDIT: Учитывая ваши нынешние обстоятельства (например, страница PHP, которая генерирует сценарии JS и страницу 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() неподдерживаемым образом или каким-то образом он не предназначен для использования. Тем не менее, я думал, что, пока JS уже написан, я бы получил к нему доступ. Наверное, это не так. Во всяком случае, я ценю, что вы пытаетесь мне помочь, хотя мне, возможно, придется немного отдохнуть. Спасибо, кучка. – SecondSun24

0

Я думал, что вы можете просто отредактировать файл phpScript.php в

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

Это будет ОК.

Смежные вопросы