【发布时间】:2017-09-14 11:14:25
【问题描述】:
我有一个 MySQL 数据库表,它的每一行都有一个唯一的 ID 标识符:
id text cat
4 abc 1
233 bbb 2
45 efa 1
使用 PHP,我展示了一个 HTML 表格,您可以在其中看到 TEXT 和 CAT 字段。
表格的每一行都使用“while”循环显示。
如您所见,我还将 ID 存储在数组 $val 中。
<?php
....
$val = array();
while($objResult = mysql_fetch_array($objQuery)){
$val[] = $objResult["id"];
?>
<table>
<tr>
<td><?php echo $objResult["text"];?></td>
<td><?php echo '<a href="#" id="open">'.$objResult["cat"].'</a>';</td>
<tr>
<?php
}
?>
</table>
现在是棘手的部分。 使用 JQuery,我希望能够单击 html 表中的 CAT 单元格并打开一个对话框窗口,我可以在其中更改 CAT 的值。 这是表格:
<form action="modcat.php" method="POST" id="modcat">
<table>
<tr>
<td>
<select id="cat">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<input type="hidden" name="val" value="<?php
for ($i = 0; $i < 1000; $i++) {
echo $val[$i];
}
?>">
</td>
</tr>
</table>
</form>
<script>
$(document).ready(function () {
$("a#open").click(function () {
$('#finestra').dialog("open");
return false;
});
$('#finestra').dialog({
modal: true,
autoOpen: false,
buttons: [{
text: "modifica",
click: function () {
submitform();
$(this).dialog("close");
}
}, {
text: "annulla",
click: function () {
$(this).dialog("close");
}
}]
});
function submitform() {
$('#modcat').submit();
}
});
</script>
如您所见,我正在尝试向表单发送 ID 的相应值(通过隐藏输入)。
事实证明,我将数组 $val 中所有表的所有 ID 放在一起。
我怎样才能将选择的表单发送到表单?
【问题讨论】:
-
请stop using
mysql_*functions。 These extensions 已在 PHP 7 中被删除。了解 PDO 和 @987654325 的 prepared 语句@ 并考虑使用 PDO,it's really pretty easy。 -
你不应该在一个 DOM 中多次使用相同的
id。改用类。因为如果你用相同的值定义id超过 1 次,那么 jquery 将考虑 DOM 中从顶部开始的第一个id。 -
我知道我的语法不是最新的。我将研究 PDO。谢谢。
-
Himanshu,你能给我举个例子吗?
-
您甚至还没有尝试构建代码来操作数据库中的值...查看 JS AJAX 以读取/写入 MySQL 数据库。哦,如果你使用 mysql_* 那么你 100% 开放攻击。它是不安全的。甚至不要用它来学习......至少在mysql上使用MySQLi_*。
标签: php jquery forms while-loop