2017-07-20 53 views
0

我正在尝试使用以下jQuery,Ajax和PHP将表追加到表。我将一个JSON编码数组返回给Ajax。

当我使用成功为Ajax的行不附加到表,并没有警报。

如果我更改成功完成该行被附加,但所有单元格显示“未定义”。我不确定成功功能失败的原因。使用Ajax和PHP向表追加行

的jQuery /阿贾克斯

$('#insert').click(function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: "Gender/process.php", 
     type: "POST", 
     data: $('form').serialize(), 
     dataType:"json", 
     success: function (strMessage) { 
      alert(strMessage[0]); 
      $('#pro-table').append(
        '<tr class="row"><td>' + strMessage[0] + '</td>\n\ 
       <td>' + strMessage[1] + '</td>\n\ 
       <td>' + strMessage[2] + '</td>\n\ 
       <td>' + strMessage[3] + '</td>\n\ 
       <td>' + strMessage[4] + '</td></tr>' 
        ); 
      $(".front").addClass('front-transform'); 
      $(".back").addClass('back-transform'); 
     } 
    }); 
    $("form").trigger("reset"); 
}); 

PHP

$user = mysqli_real_escape_string($con, $_POST['user']); 
$gender = mysqli_real_escape_string($con, $_POST['gender']); 
$description = mysqli_real_escape_string($con, $_POST['description']); 

if (isset($user) && isset($gender) && isset($description) && $user != '' && $gender != '' && $description != '') { 
    $insert_query = "INSERT INTO php_pro1 (user, gender, description) VALUES ('$user','$gender', '$description')"; 
    $rks = mysqli_query($con, "SELECT (up_votes, down_votes) FROM php_pro1 ORDER BY id DESC LIMIT 1"); 
    $row = mysqli_fetch_row($rks); 
    if (mysqli_query($con, $insert_query)) { 
     $insert = array($user, $gender, $description, $row[0], $row[1]); 
     echo json_encode($insert); 
    } else { 
     echo mysqli_error($con); 
    } 
} else { 
    echo 'Failed: ' . mysqli_error($con); 
} 
+0

他们解释成功和完整的之间的差异,请检查此答案:https://stackoverflow.com/questions/5240876/差异之间的成功和完成https://stackoverflow.com/questions/1021062/use-success-or-complete-in-ajax-call –

+0

好了,因为完整的函数返回的东西并不意味着不应该有代码存在问题。仍然失去了为什么成功不起作用。 – AndrewDavies

回答

0

一个小时没有什么线索是错误的之后那么,原来的括号围绕这个MySQL查询是造成问题

$rks = mysqli_query($con, "SELECT (up_votes, down_votes) FROM php_pro1 ORDER BY id DESC LIMIT 1"); 

它应该只是已...

$rks = mysqli_query($con, "SELECT up_votes, down_votes FROM php_pro1 ORDER BY id DESC LIMIT 1"); 

这解决了这个问题