jQuery .ПОЛУЧИТЬ вызов / функцию

#php #javascript #jquery

#php #javascript #jquery

Вопрос:

Хорошо, итак, пытаемся собрать страницу, которая должна подключиться к нашей базе данных SQL. Итак, на странице javascript у меня есть функции, которые автоматически заполняют текстовое поле данными из нашей базы данных mysql, а затем мне нужно отправить это другим функциям и классам, чтобы они затем просматривали нашу базу данных SQL и возвращали некоторые данные. Проблема, с которой я сталкиваюсь, заключается в попытке получить .ПОЛУЧИТЬ вызов для вызова на странице php с функцией, которая вызывает класс, в который мне нужно попасть для вызова SQL. У меня это несколько настроено, но я пытаюсь выяснить, как отправлять данные с его помощью, а также просто получить разъяснения о том, как работать .ПОЛУЧИТЬ функцию.

Страница Javascript:

 $.get("dsl_validate.php", calldsl(job));
  

Страница Php

 function calldsl($job){
    var $dsljob = $job
    hasfunctioncode($dsljob);
}
  

Функция hasfunctioncode находится на моей странице класса DSL, которая вернет нужную мне информацию. Любая помощь в том, нахожусь ли я в правильном направлении или нет?

Ответ №1:

Похоже, вы пытаетесь физически вызвать функцию PHP calldsl() из JavaScript. Это … неправильно. (Я предполагаю, что $.get() вы используете jQuery, пожалуйста, поправьте меня, если это предположение неверно.)

То, что $.get() делает, это просто вызывает ресурс на веб-сервере. У него нет никаких знаний о коде на стороне сервера (и не должно быть, по ряду причин). С точки зрения серверного кода, нет никакой разницы между страницей, вызываемой через $.get() , и той, которая просто загружается в веб-браузер.

Что вам, по сути, нужно сделать, так это создать страницу PHP, которая принимает аргументы либо в виде записи формы, либо в виде строки запроса (если вы используете $.get() , то строка запроса — это правильный путь), выполняет логику на стороне сервера, а затем просто выводит результаты на «страницу». В случае вызова страницы через AJAX, как вы здесь, хорошей идеей будет отобразить содержимое страницы, используя нотацию JSON. (Не забудьте также установить для заголовка content-type значение «application / json».)

Тогда то, что вы получаете на стороне клиента от $.get() вызова, — это тело ответа, которое будет представлять собой данные JSON. На самом деле это просто «страница», как и любая другая, единственное отличие заключается в типе содержимого, сообщающем браузеру, что это данные JSON и что в нем нет HTML, только объекты JavaScript. success Обратный вызов при $.get() вызове (функция, которую вы передаете или создаете в строке) получит эти данные ответа в качестве аргумента и сможет делать с ними то, что вам нужно.

Ответ №2:

Насколько я понимаю jQuery.get(), вторым аргументом является «обратный вызов» (http://api.jquery.com/jQuery.get /). Обратный вызов передаст результаты с вашего сервера, следовательно, должен быть функцией. В настоящее время ваш код фактически выполняет функцию «calldsl», куда вы должны передавать только ссылку, подобную этой…

Javascript:

 $.get("dsl_validate.php", function(response){
  alert("yay I haz ajax! " response)
});
  

PHP: «dsl_validate.php «

 echo "this is some data from the server";
  

Ответ №3:

Нет, вы не в правильном направлении. Первый параметр метода get должен указывать полный URL страницы, а не только скрипт (это работает, если скрипт находится в том же каталоге, что и файл javascript). Файл .php должен возвращать какой-либо «полезный» для вас javascript (JSON, или HTML, или текст, или… неважно). Функция «calldsl» будет вызвана ПОСЛЕ того, как данные будут возвращены из вызова. Что-то вроде этого:

 $.get('dsl_validate.php?value=somevalue', function(data) {
  alert("Data returned from dsl_Validate: "   data)
});
  

Ответ №4:

я думаю, вам лучше передать функцию в качестве параметра на вашу страницу php

 $.get("dsl_validate.php?calldsl=" job, function(data) {
  $response = $(data);// create a jquery object from the response
});
  

`

и в вашем php-файле создайте инструкцию switch, которая вызывает функцию на основе параметра

Ответ №5:

Ммм, я думаю, вы ошибаетесь, второй аргумент вашей функции get — это функция javascript, которая будет обрабатывать данные, возвращаемые «dsl_validate.php «. Я имею в виду, если эта страница возвращает «foo», задание будет содержать «foo».

Но, по моему опыту, лучше использовать плагин автозаполнения из Jquery UI

плагин автозаполнения jquery