0

わからない問題があります。

tableDND jQueryアドインを使用しています。これにより、テーブルの行をドラッグアンドドロップできます。それらの行をサーバーに送信して、mySQLデータベースにアップロードしたいと思います。

私のコードは以下のとおりです。基本的に、PHPにアクセスすると、batting変数の最初の要素がなくなります。何か案は?

だから私は次のJavaScriptを持っています:

$('#order').tableDnD({
        onDrop: function(table, row) {

            var batting = $.tableDnD.serialize();
            var id = <?php echo $id;?>;

            $.ajax({
                type: 'POST',
                url: 'update_batting.php',
                data: '{ "batting":' + batting + ', "id":'+ id +' }',
                dataType: 'json',
            });

        }
    });

および次のphp:

<?php

$batting = json_encode($_POST['order']);

$query = "INSERT INTO test (t) VALUES ('$batting')";
mysql_query($query);

?>
4

2 に答える 2

1

わかりました、すぐに行かなければならないので、これは私の大雑把な推測です...

「データ」はクエリ文字列に変換されるため、読み違えられていると思います。あなたの投稿はおそらくこれを読んでいると思います:

$_POST['batting'] = 'order[]=110209';
$_POST['order'] = 'order[]=100245&order[]=100007&order[]=100296&order[]=10‌​0213&order[]=100071&order[]=100125&order[]=110206&order[]=110205&order[]=100152&o‌​rder[]=100247&order[]=100329&order[]=100299&order[]=100243';
$_POST['id'] = '662852670';

アンパサンドが最初に出現すると、変数が終了するためです。

ばかげているように思えるかもしれませんが、「バッティング」を二重引用符で囲むことで、この問題全体を回避できる可能性があります。文字列として効果的に含める。

data: '{ "batting":"' + batting + '", "id":'+ id +' }',

これにより、予想される $_POST['order'] 変数が "$_POST['batting'] に変更されます。ただし、上記のコメントで最初に述べたように、データ オブジェクトを含める必要があります。

data: {order: '"' + batting + '"', id:id},

サンプルコードのようにキーのない文字列として送信する代わりに。

php で var_dump($_POST) を試して、取得しているすべての値を確認してください...好奇心から。

**すべての編集について申し訳ありません。仕事中、常に気を紛らわせている...

于 2011-10-25T03:00:14.557 に答える
-1

'+バッティング+'....のように'+バッティング+'...の両側のスペースを削除しようとしましたか。

于 2011-10-25T02:47:14.920 に答える