В настоящее время я создаю приложение в yii-framework. Одной из целей приложения является возможность оценивать игры на разных предопределенных категориях и платформах. Игра может принадлежать нескольким платформам.Создать или обновить с помощью ajax в yii
Пример того, как это было бы: я хочу оценить игру под названием «x». Я вижу, что игра опубликована на 4 разных платформах, поэтому, когда я оцениваю игру, я выбираю платформу, на которой я играл. после этого я оцениваю игру по 5 различным категориям. Если позже я вернусь к этой игре, я смогу обновить этот рейтинг, но я также смогу создать новый рейтинг для другой платформы.
Это особенно последняя часть, о которой я не знаю. Мое предположение о том, как сделать это, - это создать раскрывающийся список с платформами, к которым принадлежит игра, и использовать некоторые функции AJAX, чтобы создать новый рейтинг или обновить существующий. однако я не знаю, как это сделать, поскольку я редко делал что-то с AJAX.
Не могли бы вы дать мне несколько советов о том, как достичь этого?
EDIT: Может показаться, что я не пробовал что-то, поэтому я опубликую некоторые из кода, который я создал до сих пор (по какой-то причине я назвал его ранжированием вместо рейтинга ...). Как вы можете видеть это без каких-либо AJAX и он не принимает к рассмотрению платформы:
protected function createRanking($model)
{
$user_id=Yii::app()->user->getId();
$game_id=$model->id;
$rank=ranking::model()->find("create_user_id=$user_id and game_id=$game_id");
if($rank===null){
$ranking=new Ranking;
}
else{
$ranking=$rank;
}
if(isset($_POST['Ranking']))
{
$ranking->game_id=$model->id;
$ranking->attributes=$_POST['Ranking'];
$valid = $ranking->validate();
if ($valid)
{
$ranking->save(false);
$this->redirect(array('index'));
}
}
return $ranking;
}
Я вижу, как это может показаться простым вопросом (и это может быть даже так), но я не могу понять, как заставить приложение решить, создать или обновить новую запись на основе того, выбранный в раскрывающемся списке. Это правда, что я все еще нахожусь на этапе обучения, но я не могу найти ответ в Интернете, и я не могу понять это сам. – Deram
@Deram stackoverflow помогает тем, кто помогает себе. Что вы пробовали? У вас есть структура базы данных? Если да, используете ли вы 'CActiveRecord' (функция сохранения обрабатывает вставку/обновление для вас: http://www.yiiframework.com/doc/api/1.1/CActiveRecord#save-detail)? Вы пробовали версию, отличную от AJAX? Это работает? Если нет, какие у вас проблемы? – topher
Я создал некоторые из них без AJAX (но не с функцией isNewRecord). Я не так сильно смотрел на эту функцию, так как я хочу, чтобы пользователь мог посмотреть, каков был его последний рейтинг (и я не верю, что это делаетNewRecord для вас, но я могу ошибаться?) – Deram