0

3 桁の整数の配列を MySQL データベースに挿入しようとしています (例: '301'、'302' など)。配列は、jQuery、Ajax、および JSON を使用して PHP スクリプトに渡されます。このビット (「console.log」関数で判断) は正常に動作しているようです。JSON文字列をデコードしようとすると、問題が発生します。

配列内の個々の項目を個別の列に入れたいのですが、現時点では列に挿入されているのは数字の「0」だけです。

コードは次のとおりです。

jQuery:

var modules

$('#createbutton').click(function(){
 $('#l3 :checkbox:checked').each(function(i){
  var l3modules = $(this).attr('value');
  modules.push(l3modules);
  });

var modulestransmit = JSON.stringify(modules);
console.log(modulestransmit);

$.ajax({
       url: "newaccount.php",
       type: "POST",
       data: { modules: modulestransmit },
     });
 });

PHP:

 $modules = $_REQUEST['modulestransmit']);
 $insertmodules = json_decode($modules, true);

 if(mysql_query("INSERT INTO level3 (mod1, mod2) VALUES ('$insertmodules[0]', '$insertmodules[1]')")) {
  echo "Successfully inserted";
 }
 else {
  echo "Insertion Failed";
 }

データベースの結果は次のとおりです。

mod1: 0

mod2: 0

4

1 に答える 1

4

modulestransmit ではなくリクエストのパラメーターの名前としてモジュールを使用しているため、PHP の最初の行を次のように変更します。

 $modules = $_REQUEST['modules'];

また、文字列内の変数名を中かっこで囲む必要があります (PHP で二重引用符で囲まれた配列を参照する場合に重要です)。

"INSERT INTO level3 (mod1, mod2) VALUES ('{$insertmodules[0]}', '{$insertmodules[1]}')"

そして、それはそれを行う必要があります。

于 2013-01-29T16:46:06.893 に答える