php - 多维数组的AJAX POST-用PHP写入MYSQL数据库

标签 php mysql jquery

感谢 Elf Sternberg(抱歉,我无法让你的解决方案发挥作用),我想我正朝着正确的方向前进,但我在将 php 写入 mysql 数据库时遇到了麻烦。

原帖:jQuery AJAX POST to mysql table for dynamic table data- Am I doing this in anything like the right way?

首先,我网页上的动态表格表单有多个用户输入数据,我使用这个 jQuery 函数和 AJAX 调用发送到 php 文件。我在这里正确创建多维数组吗? Firebug 显示 dataString 包含我想要的所有数据,但 POST 参数和源只是说 dataString。警报功能还显示数据全部存在:

编辑:感谢 Jancha 和 Andrew,我更改了 AJAX 帖子的数据源。现在正在写入数据库,但只写入空白数据,表中的条目数量与表中的条目一样多。 Firebug 控制台显示了帖子中应显示的所有数据。我现在只是不知道如何构建 php 循环。

  jQuery(function() {  
  jQuery(".button1").click(function() {  
    // process form here
    var rowCount = jQuery('#dataTable tr').length;

    var dataString = [];
    dataString.length = rowCount - 2;
    for(var i=2; i<rowCount; i++) {
    var txtRow1 = jQuery('#txtRow' + (i-1)).val();
    var tickerRow1 = jQuery('#tickerRow' + (i-1)).val();
    var quantRow1 = jQuery('#quantRow' + (i-1)).val();
    var valueRow1 = jQuery('#valueRow' + (i-1)).val();
    // previous code: dataString[i-2] = 'txtRow1='+ txtRow1 + '&tickerRow1=' + tickerRow1 + '&quantRow1=' + quantRow1 + '&valueRow1=' + valueRow1; 
    // new code:
    dataString[i-2] = [txtRow1, tickerRow1, quantRow1, valueRow1];
    }       
    //alert (dataString);return false;  

    jQuery.ajax({  
    type: "POST",  
    url: "form_action2.php",  
    data: { 'data': dataString }
    });  
return false;  
});  
});  

如果这可以正常发送数据,那么我认为 php 函数需要如下所示:

请问我可以帮忙使用 php 函数吗?感谢您的时间。

$data = $_POST['data'];


foreach ($data as $key => $value){

$txtRow1 = $data['txtRow1'];
$tickerRow1 = $data['tickerRow1'];
$quantRow1 = $data['quantRow1'];
$valueRow1 = $data['valueRow1'];

$sqlinsert = "INSERT INTO stock_port (name, ticker, quantity, value) VALUES ('$txtRow1', '$tickerRow1', '$quantRow1', '$valueRow1')"; 

mysql_query($sqlinsert, $conn);
}

最终编辑:好的,这可以将数据输入数据库:

$data = $_POST['data'];

foreach ($data as $value){
$txtRow1 = $value[0];
$tickerRow1 = $value[1];
$quantRow1 = $value[2];
$valueRow1 = $value[3];

$sqlinsert = "INSERT INTO stock_port (name, ticker, quantity, value) VALUES ('$txtRow1', '$tickerRow1', '$quantRow1', '$valueRow1')"; 

mysql_query($sqlinsert, $conn);
}

似乎在 AJAX jQuery 调用中使用 data: {'data':dataString} 意味着我丢失了数组中发送到 POST 的数据的所有变量名称。尽管这很有效,但感觉不像应该这样做。我看到其他人在他们的 id 或名称中使用数组结构来输入表单,这似乎应该是正确的方法。

最佳答案

data: "dataString" 更改为 data: dataString,否则您传递的不是变量而是“字符串”。

关于php - 多维数组的AJAX POST-用PHP写入MYSQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296094/

相关文章:

phpDoc PDF模板

php - 如何在没有类和 ID 的 PHP 中获取 div 内容

php - 清除 Lumen 框架中的缓存

javascript - Bootstrap Typeahead 只显示第一个字母

javascript - 我没有收到 Google Books API 的响应?

javascript - Kendo UI 2019 在使用 requirejs JavaScript 时返回未定义

php - PHP 中的 Foreach 和数组

c# - 错误 1042 MySql C#?

sql - 标准化总和的汇总列 (SQL) - 第 1 部分

mysql - 更改 MYSQL 中现有表的 auto_increment 值