【发布时间】:2011-11-09 21:34:47
【问题描述】:
感谢 Elf Sternberg(我无法让您的解决方案正常工作,抱歉),我认为我正朝着正确的方向前进,但我无法将 php 写入 mysql 数据库。
首先,我网页上的动态表格表单有多个用户输入数据,我正在使用这个 jQuery 函数和 AJAX 调用来发送到一个 php 文件。我在这里正确地创建了多维数组吗? Firebug 显示 dataString 包含我想要的所有数据,但 POST 参数和源只是说 dataString。警报功能还显示数据都在那里:
编辑:感谢 Jancha 和 Andrew,我更改了 AJAX 帖子的数据源。现在正在写入数据库,但只有 BLANK 数据被写入,与表中的条目一样多。 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 或名称中使用数组结构来输入表单,这似乎应该是要走的路。
【问题讨论】: