Как я помещаю переменные в веб-клиент для AJAX? - PullRequest
0 голосов
/ 22 февраля 2010

Привет, ребята. Как мне использовать переменную PHP $ contact ['id'] в моем вызове ajax? Я пытаюсь создать страницу, которая получает все уведомления, связанные с пользователем. Когда страница загружается, я уже знаю идентификатор пользователя, как я могу использовать этот параметр в моих вызовах ajax с самого начала? В настоящее время я использую препроцессор php, разделив строку php и вставив переменные, но я знаю, что это не очень хорошее решение и, например, не позволяет мне реорганизовать javascript в его собственный файл. Кстати, я использую Zend PHP Framework. Кто-нибудь знает, как лучше всего добиться того, что я пытаюсь сделать?

<?php $this->headScript()->appendScript('
dojo.require("dijit.form.Textarea");

function getNotes(){
    dojo.xhrGet({
        url: "/manager/contacts/get-notes-html",
        content: {
            "contactId" : '.$this->contact['id'].',
        },
        load: function(response) {
                console.log("Form successfully submitted");
                dojo.byId("notesDiv").innerHTML = response;
        },
        error: function() {
                console.error("Error on submission");
                alert("error error errrrror");
        }
    });


}
dojo.addOnLoad(getNotes);
');
?>

<div id="notesDiv">

</div>

1 Ответ

1 голос
/ 22 февраля 2010

просто поместите ваш contact_id в переменную в javascript, чтобы вы могли сохранить один и тот же код, несмотря ни на что, и он немного более чистый.

если вы не хотите загрязнять глобальное пространство имен, просто создайте свой собственный, как data.

т.е.

<?php $this->headScript()->appendScript('
 contact_id = ' . $this->contact['id'] .';
');

PS: Zend Framework также предоставляет некоторые captureStart() и captureEnd(), чтобы вы могли выполнять эту работу в контроллере

$this->view->headScript()->captureStart();
echo "foobar = {$foobar};\n";
$this->view->headScript()->captureEnd();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...