-1

现在我有一个战舰游戏的 php 脚本,它通过 json 接受 10x10 的单个字符数组。

$gameId = $_POST['gameId'];       // int
$playerId = $_POST['playerId'];   //int
$boardJSON = $_POST['board'];     //10x10 json array

我试图拼凑一个 html/ajax 表单来提交这些数据。让用户输入 10x10 字符数组、对其进行序列化并将其作为 json 发送的最佳方式是什么?

这只是测试,所以它不需要漂亮,它只需要工作。

4

3 回答 3

0

10x10 的板子没那么大。一个 100 个字符的字符串就可以了。位置 0 位于左上角,位置 99 位于右下角。字符串很容易,对吧?

于 2013-07-17T03:20:46.460 回答
0

只需 10 个字符串,每行一个(使测试更容易)。只需编写一点 Javascript 即可将数据放入数组中。

于 2013-07-17T03:24:34.380 回答
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>

然后,您可以使用此插件将表单序列化为对象。

var data = {};
data.gameId = gameId;
data.playerId = playerId;
data.board = $('#board').serializeObject();

现在可以将数据发送到服务器。

于 2013-07-17T04:28:16.553 回答