Javascript 如何在Silex中使用jQueryAjax
我试图理解Silex和JQuery是如何协同工作的,但我不明白,我希望你能帮助我 我有一个包含AJAX调用的小树枝模板。 我不明白如何将Ajax调用绑定到我的应用程序 JS: 我想叫这个班: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
<?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;
});