使用ajax更新MySQL数据库

时间:2015-06-21 16:20:49

标签: javascript php jquery mysql ajax

我试图通过点击按钮将JS数组发送到.php文件,并使用发送的数组在点击上运行php文件的代码。

我有一个按钮:

public class Mesa {

Principal ctx;
public ToastMsg toast;
......
public Mesa (Context ctx, int numeroJugadores, int numBarajas, int numCartasRepartir)
{
    if (numeroJugadores < 2 || numeroJugadores > NUMERO_MAX_DE_JUGADORES)
        throw new Error ("Número de jugadores no válido.");
    this.ctx = (Principal) ctx;
    toast = new ToastMsg(ctx.getApplicationContext());
     ....
 }}

我尝试使用以下命令运行此JS ajax:

<button id="submit" class="button1" >Submit<span></span></button>

在我的submit.php文件中,我连接到数据库,然后输入:

$('#submit').click(function() {
  $.ajax({
    method: "POST",
    url: "submit.php",
    data: selectedImageArray
  }).done(function( msg ) {
    alert( "Data Saved: " + msg );
  });
});

当我点击&#34;提交&#34;按钮,我收到消息说&#34;数据保存&#34;,但我的数据库没有发生任何事情。应该单击按钮运行submit.php代码吗?

3 个答案:

答案 0 :(得分:0)

您的JS语法错误。另外,由于#submit是ID,因此不需要使用button进行限定。

您的代码应为:

$('#submit').click(function() {
  $.ajax({
    method: "POST",
    url: "submit.php",
    data: selectedImageArray
  }).done(function( msg ) {
    alert( "Data Saved: " + msg );
  });
});

修改1:

我看到您已将上述代码合并到JS中。现在讨论服务器端的问题(PHP / SQL)。

首先,为什么要解码$_POST[selectedImageArray]然后重新编码呢?对我没有意义。

其次,$steamprofile['steamid']的价值是什么?

第三,SQL表的架构是什么?你确定你没有违反任何unique / not null / fk约束吗?

帮自己一个忙,并在服务器端使用调试/日志记录解决方案。它可以像将调试行打印到日志文件中一样简单,以便稍后检查以查明发生的情况。

我要做什么:

  • 检查$_POST[selectedImageArray]的值。它应该是一个字符串。
  • 检查$array的值。它应该是一个数组。
  • 阅读错误日志,看看它还说了什么。
  • $sql->execute();返回bool(成功时为TRUE)。在脚本中使用它可以返回成功或失败消息。
  • 在失败时记下$sql->errorCode();的值。

综上所述,你应该有足够的麻烦解决那里出了问题。

答案 1 :(得分:0)

$('#submit').click(function(){
  $.ajax({
      method: "POST",
      url: "submit.php",
      data: {selectedImageArray: selectedImageArray}, // this is supposed to be JSON
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
  });
});

$_POST['selectedImageArray'] // see the quotes

答案 2 :(得分:0)

我认为steam_id是具有自动增量的主键,因此如果您尝试向steam_id使用相同值的数据库插入行,那么您的数据可能不会加入。

要以更好的方式进行调试,请尝试在服务器中生成查询并回显它。然后尝试在MySQL控制台中运行相同的查询以查找响应。