Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Silex中使用jQueryAjax_Javascript_Jquery_Ajax_Silex - Fatal编程技术网

Javascript 如何在Silex中使用jQueryAjax

Javascript 如何在Silex中使用jQueryAjax,javascript,jquery,ajax,silex,Javascript,Jquery,Ajax,Silex,我试图理解Silex和JQuery是如何协同工作的,但我不明白,我希望你能帮助我 我有一个包含AJAX调用的小树枝模板。 我不明白如何将Ajax调用绑定到我的应用程序 JS: 我想叫这个班: <?php namespace resources\services; resources\controller\UserOnline; use resources\objects\Message; use Silex\Application; /** * Class AjaxCom

我试图理解Silex和JQuery是如何协同工作的,但我不明白,我希望你能帮助我

我有一个包含AJAX调用的小树枝模板。 我不明白如何将Ajax调用绑定到我的应用程序

JS:

我想叫这个班:

<?php
 namespace resources\services;
 resources\controller\UserOnline;
 use resources\objects\Message;
 use Silex\Application;

 /**
 * Class AjaxCom
 * @package resources\controller
 */
 class AjaxCom
 {

/**
 * @var array
 */
private $chatOutput = [];
/**
 * @var array
 */
private $userOutput = [];
/**
 * @var
 */
private $ddConnect;


/**
 * @return array
 */
public function getChatOutput()
{
    return $this->chatOutput;
}

/**
 * @return array
 */
public function getUserOutput()
{
    return $this->userOutput;
}


/**
 * AjaxCom constructor.
 * @param $datenbankVerbindung
 */
public function __construct($datenbankVerbindung)
{
    $this->ddConnect = $datenbankVerbindung;
}


/**
 * @return array
 */
public function showChatData()
{
    $posts = $this->ddConnect->fetchAll("SELECT * FROM messages");


    foreach ($posts as $post) {

        /*
         * post wird an die function buildMessageFromRow übergeben
        array chatOutput bekommt Die Id aus DB=>Message
        chatOutput[id objekt message] = objekt message d.h soviel id wie es gibt so viele Objekte gibt es. Jede zeile ist ein Objekt
        */
        $message = $this->buildMessagerFromRow($post);
        $this->chatOutput[$message->getId()] = $message;
    }

    return $this->getChatOutput();
}

/**
 * @return array
 */
public function showOnUser()
{
    $users = $this->ddConnect->fetchAll("SELECT * FROM user WHERE status='1'");
    foreach ($users as $userOnline) {
        $userOnline = $this->buildUserFromRow($userOnline);
        $this->userOutput[$userOnline->getId()] = $userOnline;

    }

    return $this->getUserOutput();

}

/**
 * @param $message
 * @param $writer
 */


public function writeChatDateInDb($message,$writer)
{
    $this->ddConnect->insert(
        'messages',
        array(
            'message' => $message,
            'writer' => $writer,
        )
    );


}

private function buildMessagerFromRow($rowSet)
{
    return new Message(
        $rowSet['id'],
        $rowSet['message'],
        $rowSet['writer']
    );
}
private function  buildUserFromRow($rowset){
    return new UserOnline(
        $rowset['id'],
        $rowset['name'],
        $rowset['password'],
        $rowset['status']
    );

}
}

通常,您会使用.htacces将所有内容路由到index.php

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On
    #RewriteBase /path/to/app
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [QSA,L]
</IfModule>
PHP

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$app->post('/chat', function (Request $request) {
    $ajaxCom = new AjaxCom();
    $data = $request->get('message');
    $response = $ajaxCom->yourFunction($data);
    return $response;
});
$('form').submit(
    function (event) {
        event.preventDefault();
        var daten = $('#message').val();
        $.ajax({
            url: '/chat',
            type: 'POST',
            data: {message: daten},
            success: function (daten) {
                alert(daten);
                $('#message').val(' ');
            },
            error: function () {
                console.log('error at writing');
            }
        });
    });
});
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$app->post('/chat', function (Request $request) {
    $ajaxCom = new AjaxCom();
    $data = $request->get('message');
    $response = $ajaxCom->yourFunction($data);
    return $response;
});