Я видел много разных подходов для передачи данных javaScript и PHP, но я сомневаюсь в эффективности и точности. Я имею в виду, например, что у вас есть платформер javaScript (игра), который имеет 10 уровней. У вас много пользователей, у каждого из которых есть/владеют другой учетной записью. Вы хотите сделать эту игру, чтобы пользователь закрыл вкладку браузера или сохранил и хочет воспроизвести ее позже; он/она не должен перезапускаться с уровня 1. Вместо этого вы хотите, чтобы при сохранении пользователя вы сохранили текущий номер уровня, который был сохранен пользователем, в базе данных mySQL в его или ее учетной записи . Теперь единственной проблемой является то, что количество уровней, которые пользователь выполнил, хранится в переменной javaScript, но вам нужно каким-то образом передать/получить эту переменную в PHP, чтобы сделать это, как бы вы это сделали? Я видел document.write (< set php variable здесь >), но я не думаю, что это самый эффективный способ приблизиться к этому. Теперь я задаю вопрос об эффективности только после того, как выясню другой способ сделать это просто по той причине, что в текущем методе, который я использую, больше не задействовано обратное вычисление. Так, вообще говоря, есть ли еще более эффективные решения, которые являются более гибкими?Каков наиболее эффективный способ передачи данных на PHP и JavaScript?
ответ
Мой подход заключается в том, чтобы сохранить готовый уровень через вызов AJAX после того, как пользователь успешно завершил уровень. Таким образом, вам не нужно беспокоиться о том, что пользователь закрывает браузер, т. Е. Если он это делает, и он не закончил уровень, то он должен повторить последний уровень, который он не закончил.
EDIT:
JS скрипт:
$.ajax({
method: "POST",
url: "update_finished_level.php",
data: { user_id: "1", level_finished: "4", some_other_parameter: "some value" }
})
.done(function(msg) {
if(msg == 1) {
// OK
} else {
// SOMETHING WENT WRONG
}
});
PHP скрипт (предположим, что вы используете MySQLi для подключения к БД):
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
if ($link->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
if($mysqli->query("UPDATE user SET level_finished = " . $_POST['level_finished'] . " WHERE user_id = " . $_POST['user_id']) === TRUE) {
echo 1;
} else {
echo 0;
}
BEWARE: Вы должны избежать любой выход что вы получаете от пользователя, так что, по крайней мере, используйте функцию mysql_real_escape_string, которая BTW больше не защищена.
Я предлагаю вам использовать что-то вроде библиотеки PHP PDO: http://php.net/manual/en/book.pdo.php. Есть много учебников, где можно использовать его с подготовленными операторами.
Хорошая точка, но проблема в том, что, как я уже сказал, мне нужно использовать mySQL, потому что у каждого пользователя есть другая учетная запись. –
mysql не имеет никакого отношения к вызову ajax. Вы можете сделать ajax-вызов с помощью javascript, а затем обработать его в php и mysql. – Unex
Это то, что я допрашиваю, как можно подключить (в данном случае) AJAX с php; поскольку наиболее вероятным подходом к AJAX является функция jQuery '$ .ajax'. –
- 1. Каков наиболее эффективный способ хранения этих данных?
- 2. Каков наиболее эффективный способ перебора объекта javascript?
- 3. Каков наиболее эффективный способ хранения маяков аналитики?
- 4. Каков наиболее эффективный способ передачи дерева каталогов через tcp? C++
- 5. Каков наиболее эффективный способ передачи значений клиентам в C#
- 6. Каков наиболее эффективный способ фильтрации поиска?
- 7. Каков наиболее эффективный способ перемещения данных видеокадра на GPU?
- 8. Каков наиболее эффективный способ переноса этих данных на Sql Server?
- 9. Каков наиболее эффективный способ запуска и остановки PHP-процессов?
- 10. Каков наиболее эффективный способ хранения и вызова данных?
- 11. Каков наиболее эффективный способ хранения и анализа данных в AS3?
- 12. Каков наиболее эффективный способ обработки этой функции?
- 13. Java - Каков наиболее эффективный способ синхронизации ArrayList?
- 14. Каков наиболее эффективный способ сохранения HashMap?
- 15. Каков наиболее эффективный способ подразделить большой список?
- 16. Каков наиболее эффективный способ инициализации 3D-вектора?
- 17. Каков наиболее эффективный способ организовать множество методов?
- 18. Каков наиболее эффективный способ выполнения этого кода?
- 19. Каков наиболее эффективный способ сохранения списков?
- 20. Каков наиболее эффективный способ сохранения данных в базе данных MySQL
- 21. Каков наиболее эффективный способ создания веб-видеочата?
- 22. Каков наиболее эффективный способ создания отчета?
- 23. Каков наиболее эффективный способ структурирования этой базы данных?
- 24. Каков наиболее эффективный способ переназначения структуры?
- 25. Каков наиболее эффективный способ синхронизации двух datagridviews?
- 26. Каков наиболее эффективный способ сортировки NSSet?
- 27. Каков наиболее эффективный способ взаимодействия с Singleton?
- 28. Каков наиболее эффективный способ выполнения умножения?
- 29. Каков наиболее эффективный способ фильтрации DataFrame
- 30. Каков наиболее эффективный способ перенаправления запросов?
Добро пожаловать в SO. Пожалуйста, посетите [help], чтобы узнать, почему этот вопрос, вероятно, будет закрыт как не относящийся к теме – mplungjan