我有一系列動態創建的表單,允許用戶更新網頁上的各個部分。提交時,表單應該更新數據庫並回顯成功警報。無論有多少列表元素,列表的第一種形式似乎都不起作用(不知道爲什麼)有什麼想法?AJAX形式的第一個孩子沒有提交時,每隔一個表格
注意當在第一個LI(永不工作的)中提交表單時,它返回一個成功語句(表示AJAX工作)但不更新數據庫。我身邊有確保的ID排隊到SQL數據庫被查詢的發揮,並罰款相匹配,但在第一個孩子的形式拒絕更新
頁
<?php
$conn = mysqli_connect('localhost', 'root', '', 'ajax') or die ('error could not connect');
$query = "SELECT * FROM data";
$result = mysqli_query($conn, $query) or die('error could not query');
echo '<ul>';
while ($row = mysqli_fetch_array($result)) {
echo '<li>';
echo '<form class="form">';
echo '<input type="hidden" name="id" value="'.$row['id'].'">';
echo '<input type="text" name="data" value="'.$row['data'].'">';
echo '<input type="submit" name="submit" value="Submit">';
echo '</form>';
echo '</li>';
}
echo '</ul>';
mysqli_close($conn);
?>
<script>
$('form').on('submit', function(e){
$.ajax({ // Starter Ajax Call
type: "POST",
url: 'update.php',
data: $('form').serialize(),
success: function() {
alert('updated');
}
});
e.preventDefault();
});
</script>
Update.php
<?php
$id = $_POST['id'];
$data = $_POST['data'];
$conn = mysqli_connect('localhost', 'root', '', 'ajax') or die ('error could not connect');
$query = "UPDATE data SET data = '$data' WHERE id = $id";
mysqli_query($conn, $query) or die('error could not query');
mysqli_close($conn);
?>
HTML輸出
<ul>
<li>
<form>
<input type="hidden" name="id" value="3">
<input type="text" name="data" value="change">
<input type="submit" name="submit" value="Submit">
</form></li> //Does not update SQL specific row
<li><form></form></li> //updates fine
<li><form></form></li> //updates fine
<li><form></form></li> //updates fine
</ul>
您是否希望在提交任何表單時提交所有表單中的數據? – Musa
理想情況下,只是更新的形式,但所有的形式都是動作形式創建的,它們的數量會隨時發生變化 – user934902