Javascript AJAX只保存输入的第一个字母
我有一个AJAX请求,它序列化表单数据并将其发送到数据库。当数据被序列化时,我看到它在输出中呈现全文,但当它将其存储在数据库中时,它只保存每个单词的第一个字母 例如,它将序列化要发送的内容: splashText=银釉 但如果没有行,数据库将保存: 如果提交的表中有多行,则会在数据库中捕获数据,如下所示: 第1行=S 第2行=i 我想得到的结果如下: 第1行=银釉 第2行将=在该行中选择的下一个选项,依此类推 发布的序列化数据如下(共2行): 用于序列化表单的代码:Javascript AJAX只保存输入的第一个字母,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我有一个AJAX请求,它序列化表单数据并将其发送到数据库。当数据被序列化时,我看到它在输出中呈现全文,但当它将其存储在数据库中时,它只保存每个单词的第一个字母 例如,它将序列化要发送的内容: splashText=银釉 但如果没有行,数据库将保存: 如果提交的表中有多行,则会在数据库中捕获数据,如下所示: 第1行=S 第2行=i 我想得到的结果如下: 第1行=银釉 第2行将=在该行中选择的下一个选项,依此类推 发布的序列化数据如下(共2行): 用于序列化表单的代码: var form_da
var form_data = $(this).serialize() + '&glassText=' + $('.item_glass').children("option").filter(":selected").text() + '&splashText=' + $('.item_splash').children("option").filter(":selected").text() + '&holeText=' + $('.item_HDiam').children("option").filter(":selected").text();
+用于获取输入的文本值,而不是值。我想这可能是问题所在,但我不知道如何解决
PHP帖子:
for($count = 0; $count < count($_POST["item_name"]); $count++)
{
$query = "INSERT INTO tbl_order_items
(order_id, item_name, item_quantity, item_unit,item_glass, item_splash, item_HQuan,item_HDiam,item_CQuan,item_colour,item_total,user_id)
VALUES (:order_id, :item_name, :item_quantity, :item_unit,:item_glass,:item_splash,:item_HQuan,:item_HDiam,:item_CQuan,:item_colour,:item_total,:user_id)";
$statement = $connect->prepare($query);
$statement->execute(
array(
':order_id' => $order_id,
':item_name' => $_POST["item_name"][$count],
':item_quantity' => $_POST["item_quantity"][$count],
':item_unit' => $_POST["item_unit"][$count],
':item_glass' => $_POST["glassText"][$count],
':item_splash' => $_POST["splashText"][$count],
':item_HQuan' => $_POST["item_HQuan"][$count],
':item_HDiam' => $_POST["holeText"][$count],
':item_CQuan' => $_POST["item_CQuan"][$count],
':item_colour' => $_POST["item_colour"][$count],
':item_total' => $_POST["item_Total"][$count],
':user_id' => $user_id
)
);
}
$result = $statement->fetchAll();
if(isset($result))
{
echo 'ok';
}
}
for($count=0;$countprepare($query);
$statement->execute(
排列(
':order\u id'=>$order\u id,
':item_name'=>$\u POST[“item_name”][$count],
':item_quantity'=>$_POST[“item_quantity”][$count],
':item_unit'=>$_POST[“item_unit”][$count],
':item_glass'=>$\u POST[“glassText”][$count],
':item_splash'=>$\u POST[“splashText”][$count],
':item\u HQuan'=>$\u POST[“item\u HQuan”][$count],
':item_HDiam'=>$\u POST[“holeText”][$count],
':item_CQuan'=>$_POST[“item_CQuan”][$count],
':item_color'=>$发布[“item_color”][$count],
':item_total'=>$发布[“item_total”][$count],
':user\u id'=>$user\u id
)
);
}
$result=$statement->fetchAll();
如果(isset($result))
{
回声‘ok’;
}
}
它是一个正在保存的动态表。伯爵就是这样
要在动态表中添加上下文,请参见屏幕截图:
:因为您没有提供html代码,所以我假设“Review Quote”按钮是submit按钮。那么,试试这个: 从
var form_data = $(this).serialize() + '&glassText=' + $('.item_glass').children("option").filter(":selected").text() + '&splashText=' + $('.item_splash').children("option").filter(":selected").text() + '&holeText=' + $('.item_HDiam').children("option").filter(":selected").text()
致:
你能确认并在这里发布你在php中得到的文本吗?请提供php代码。用php代码编辑
$\u post[“item\u name”]
很可能是字符串,而不是数组。因此,执行$string[0]
将返回$string
的第一个字母,如果您发送splashText=Silver glasse
,那么$\u POST[“splashText”]
确实是一个字符串。因此,$\u POST[“splashText”][$count]
将是该字符串中的一个字符。
var form_data = $(this).serialize() + '&glassText=' + $('.item_glass').children("option").filter(":selected").text() + '&splashText=' + $('.item_splash').children("option").filter(":selected").text() + '&holeText=' + $('.item_HDiam').children("option").filter(":selected").text()
var glassText = '';
$('.item_glass').each(function(){
glassText+='&glassText[]='+$(this).find(":selected").text().replace(' ','+');
});
var splashText = '';
$('.item_splash').each(function(){
splashText+='&splashText[]='+$(this).find(":selected").text().replace(' ','+');
});
var holeText = '';
$('.item_HDiam').each(function(){
holeText+='&holeText[]='+$(this).find(":selected").text().replace(' ','+');
});
var form_data = $(this).serialize() + glassText + splashText + holeText;