感谢 Elf Sternberg(抱歉,我无法让你的解决方案发挥作用),我想我正朝着正确的方向前进,但我在将 php 写入 mysql 数据库时遇到了麻烦。
首先,我网页上的动态表格表单有多个用户输入数据,我使用这个 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/