Передача данных из JavaScript в воспламенитель кода - PullRequest
1 голос
/ 19 февраля 2012

Я хочу создать простой букмарклет для передачи некоторой информации из javascript в мое приложение Code Ignitor.

Для этого потребуется использовать GET, но GET отключен в CodeIgnitor, и для его включения потребуется перезапуск-записать несколько представлений и бэкэнд-код, который отсутствует.

Я хочу передать 4 параметра (некоторые из которых необязательны) в метод на моем контроллере.Поскольку некоторые из них являются необязательными, это делает их немного сложнее

/controller/method/p1/p2/p3

, но если p2 является необязательным, он немного их выбрасывает.

В идеале я думал, что смогу сделать

/controller/method/p1 

Где p1 - массив json.

Однако, поскольку это букмарклет, на самом деле могут использоваться только базовые и стандартные функции javascript.

Если бы я мог просто сделать

/controller/method?p1=foo&p2=bar

облегчит жизнь.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2012

1.) Вы не ограничены «только основными и стандартными функциями javascript» в букмарклете.Вы можете использовать любую библиотеку, уже включенную в страницу, или вы можете использовать букмарклет, чтобы сначала добавить библиотеку, а затем использовать ее.Чтобы добавить библиотеку на страницу с букмарклетом, просто добавьте тег script и используйте атрибут onload для выполнения желаемого кода после загрузки библиотеки.

Вот генератор букмарклетов, который позволит вам использовать jQuery с любым букмарклетом: http://benalman.com/code/test/jquery-run-code-bookmarklet/ - вы можете перейти по ссылкам там для получения подробной информации.Поскольку он предназначен для создания букмарклетов практически для любого типа страниц, генератор создает код, который немного сложнее, чем может потребоваться в вашем случае.

2.) Почему бы не сделать что-то вроде этого: /controller/method/p1=foo&p3=bar и потом очень легко разбираешь строку самостоятельно.(Обратите внимание, что это не получение. Там нет "?".)

Или аналогично /controller/method/p1=foo/p3=bar или /controller/method/p1-foo/p3-bar.

3.) Вы можете использовать заполнители по умолчанию, которые будутигнорироваться кодом на стороне сервера, таким как /controller/method/P1/null/P3 или /controller/method/P1/-/P3.

0 голосов
/ 19 февраля 2012

В чем проблема с установкой значений по умолчанию для этих переменных, которые являются необязательными, и последующим использованием конструкции if для поиска значений по умолчанию и их игнорирования?

Проще говоря, соответствующая функция класса контроллера принимает аргументы GET в качестве параметров в CI, поэтому вы можете просто установить значения по умолчанию. Затем проверьте наличие значений по умолчанию и игнорируйте такие переменные ...

...