Javascript 使用HTML/PHP/AJAX将行插入数据库
我有一个可以点击的按钮,它会弹出一个带有一个文本字段的弹出框。每当我输入某个内容并单击“添加”时,我都希望它被插入到我的数据库中 当前,当我单击“添加”时,它将插入数据库,但不会读取输入的值。因此,只需输入一个空值。我没有看到任何错误,但是在我的JavaScript中,我执行了一个Javascript 使用HTML/PHP/AJAX将行插入数据库,javascript,php,html,ajax,sql-insert,Javascript,Php,Html,Ajax,Sql Insert,我有一个可以点击的按钮,它会弹出一个带有一个文本字段的弹出框。每当我输入某个内容并单击“添加”时,我都希望它被插入到我的数据库中 当前,当我单击“添加”时,它将插入数据库,但不会读取输入的值。因此,只需输入一个空值。我没有看到任何错误,但是在我的JavaScript中,我执行了一个console.log(dict),日志中的输出是Object{},因此看起来输入的值没有被记录。我也在日志中成功地插入了一行消息,所以我肯定会认为这只是一个能够读取值的问题 所以我的问题是如何让它读取值并成功地将其输
console.log(dict)
,日志中的输出是Object{}
,因此看起来输入的值没有被记录。我也在日志中成功地插入了一行消息,所以我肯定会认为这只是一个能够读取值的问题
所以我的问题是如何让它读取值并成功地将其输入数据库
添加按钮的HTML:
<td><button class="create-user" id="insertButton">Add Group</button></td>
insert-group.php脚本:
<?php
$SKU_Group = $_POST['SKU Group'];
$host="xxxxxxxxxxx";
$dbName="xxxxxxx";
$dbUser="xxxx";
$dbPass="xxxxxxxxxxxxxx";
$pdo = new PDO("sqlsrv:server=".$host.";Database=".$dbName, $dbUser, $dbPass);
$sql = "INSERT INTO SKU_Group_Dim ([SKU Group]) VALUES (?)";
$stmt = $pdo->prepare($sql);
$result = $stmt->execute(array($SKU_Group));
echo json_encode($result);
?>
编辑
我的html表格:
<table id="skuTable" cellspacing="5" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header">
<th class="skuRow">SKU Group</th>
<th class="skuRow">Group ID</th>
<th class="skuRow">Edit</th>
<th class="skuRow">Delete</th>
</tr>
</thead>
<tbody>
<?php foreach ($dbh->query($sql_table) as $rows) { ?>
<tr>
<td class="sku_group" id="sku_group-<?php echo intval ($rows['SKU Group'])?>"><?php echo $rows['SKU Group']?></td>
<td class="group_id" align="center" id="group_id-<?php echo intval ($rows['Group_ID'])?>"><?php echo $rows['Group_ID']?></td>
<td><button type="button" class="edit" name="edit">Edit</button></td>
<td><button type="button" class="delete" onclick="deleteRow(this)">Delete</button></td>
</tr>
<?php
}
?>
</tbody>
</table>
SKU组
组ID
编辑
删除
编辑
删除
您的值不好
尝试改变
var value = $(this).val();
到
尝试将您的
$功能更改为$tr.each
。我认为你应该提供一些东西让它迭代。这是你的电话号码。
如果您想迭代所有的,您必须将td添加到jquery调用中
我的解决方案如下所示:
var $tr = $( "#skuTable tbody tr td" ).eq(0).clone(); //get all td of sku-table
var dict = {};
$tr.each(function(){
var type = $(this).attr('id'); // get value of current tr
var value = $(this).html(); // get html content inside of tr
switch (type) {
case "group":
dict["SKU Group"] = value;
break;
}
});
$('#group').val(dict['SKU Group']); // set value of the input field
请与我共享对象的内容或控制台错误。如果不发送console.log的返回(类型+“:”+值);谢谢,我没有收到任何错误…对象中没有任何内容,我在控制台中看到的唯一内容是object{}
…而且无论出于何种原因,我在控制台中没有收到console.log(type+“:”+value)的任何内容代码>由于boroboris修复了代码中的某些内容…我的console.log输出现在是未定义:
console.log的输出是什么(type+“:”+value);(内部。每个函数?出于某种原因,我没有得到它的输出检查我下面的答案。我认为它不起作用,因为每个函数都没有迭代,程序只是跳过它。是的,我刚刚意识到……输出是未定义的:
我已经更新了答案。根据我收集的信息,你想迭代所有的tr并得到答案继承人的值和类型?您的表是什么样子的?我刚刚更新了我的原始帖子,以包括我的表以及console.log(type+“:”+value)的新输出
现在是sku组-0:
是的,但是现在这个函数正在迭代tr元素。你只需要获取你需要的信息。我仍然不确定你到底需要哪些信息?sku组的id和tr组的html?我需要弹出框中这行代码的信息
var value = $(this).val();
var value = $(this).find('input[type=text]').val();
var $tr = $( "#skuTable tbody tr td" ).eq(0).clone(); //get all td of sku-table
var dict = {};
$tr.each(function(){
var type = $(this).attr('id'); // get value of current tr
var value = $(this).html(); // get html content inside of tr
switch (type) {
case "group":
dict["SKU Group"] = value;
break;
}
});
$('#group').val(dict['SKU Group']); // set value of the input field