现在我有一个用于战舰游戏的php脚本,它通过json接受10x10单个字符数组。
$gameId = $_POST['gameId']; // int
$playerId = $_POST['playerId']; //int
$boardJSON = $_POST['board']; //10x10 json array
我正在尝试将html / ajax表单放在一起提交此数据。 让用户输入10x10字符数组,序列化并将其作为json发送的最佳方法是什么?
这只是测试所以它不需要漂亮,它只需要工作。
答案 0 :(得分:0)
10x10的电路板并不是那么大。一个100个字符的字符串可以做到这一点。位置0位于左上方,位置99位于右下方。字符串很简单,对吧?
答案 1 :(得分:0)
只有10个字符串,每行一个(使测试更容易)。只需写一点Javascript就可以将数据放入数组中。
答案 2 :(得分:0)
最简单的方法是在表单中添加一个10x10的文本元素数组
<form id='board'>
<table>
<?php for($y = 0; $y < 10; $y++): ?>
<tr class="row-<?= $y ?>">
<?php for($x = 0; $x < 10; $x++): ?>
<td class="col-<?= $x ?>"><input type='text' size='1' maxlength='1' name="board[<?= $x ?>][<?= $y ?>]" data-x="<?= $x ?>" data-y="<?= $y ?>"/>
<?php endfor; ?>
</tr>
<?php endfor; ?>
</table>
</form>
然后,您可以使用this plugin将表单序列化为对象。
var data = {};
data.gameId = gameId;
data.playerId = playerId;
data.board = $('#board').serializeObject();
现在可以将数据发送到服务器。