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";
 }

数据库中的结果是:

模式1:0

模组2:0

4

1 回答 1

4

您在请求中使用模块作为参数的名称而不是模块传输,因此将 PHP 的第一行更改为

 $modules = $_REQUEST['modules'];

并且您还需要在字符串中的变量名周围加上花括号(在 PHP 中用双引号引用数组时非常重要)。

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

那应该这样做。

于 2013-01-29T16:46:06.893 回答