从html表单获取10x10数字数组

时间:2013-07-17 03:17:58

标签: php html json jquery

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

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

我正在尝试将html / ajax表单放在一起提交此数据。 让用户输入10x10字符数组,序列化并将其作为json发送的最佳方法是什么?

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

3 个答案:

答案 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();

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