Php 使用Ajax删除数据库行只会删除第一行,而不是所选行
我使用下面的代码在数据库行中循环并显示信息。每个表单都有一个删除按钮,可以从数据库中删除该行:Php 使用Ajax删除数据库行只会删除第一行,而不是所选行,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我使用下面的代码在数据库行中循环并显示信息。每个表单都有一个删除按钮,可以从数据库中删除该行: function show_scheduled_tweets () { global $wpdb; $query = "SELECT * FROM wp_tweettweet"; $results = $wpdb->get_results($query, ARRAY_A); foreach($results as $result) { $twee
function show_scheduled_tweets () {
global $wpdb;
$query = "SELECT * FROM wp_tweettweet";
$results = $wpdb->get_results($query, ARRAY_A);
foreach($results as $result) {
$tweet2 = $result[text];
$recycleOption = $result[recycle];
$id = $result[id];
?>
<form id="tweet-<?php echo $id; ?>" class="tweetclass form-inline" action="" method="post">
<div class="checkbox">
<label>
<input type="checkbox" name="recycle" <?php if($recycleOption == 1){ echo "checked";} ?>>Recycle Tweet?
</label>
</div>
<div class="form-group"><input class="form-control" type="text" name="tweet" value="<?php echo $tweet2; ?>"></div>
<div class="form-group"><input class="form-control" type="text" name="tweetdate"></div>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<div class="form-group"><input class="form-control" type="text" name="timepicker" class="timepicker"/></div>
<input class="tweetsubmit" type="submit" value="Save">
<input class="tweetdelete" type="submit" value="delete">
</form>
<?php
}
}
show_scheduled_tweets();
假设我有五行不同的数据显示。现在无论我点击哪个删除按钮,最上面的一行都会被删除。换句话说,如果我单击第3行的删除按钮,第一行将被删除 根据当前代码返回第一个元素的值。检查: 获取匹配元素集中第一个元素的当前值,或设置每个匹配元素的值
您需要根据单击的元素获取
id
值,请使用
var id = jQuery(this).prevAll('input[name="id"]').val();
var id = jQuery(this).closest('form').find('input[name="id"]').val();
或方法
var id = jQuery(this).siblings('input[name="id"]').val();
或使用(或)和
var id = jQuery(this).prevAll('input[name="id"]').val();
var id = jQuery(this).closest('form').find('input[name="id"]').val();
根据当前代码,返回第一个元素的值。检查: 获取匹配元素集中第一个元素的当前值,或设置每个匹配元素的值
您需要根据单击的元素获取
id
值,请使用
var id = jQuery(this).prevAll('input[name="id"]').val();
var id = jQuery(this).closest('form').find('input[name="id"]').val();
或方法
var id = jQuery(this).siblings('input[name="id"]').val();
或使用(或)和
var id = jQuery(this).prevAll('input[name="id"]').val();
var id = jQuery(this).closest('form').find('input[name="id"]').val();
你在美国的选择对于公司的tweet来说并不特殊。传递给JS函数的事件将附带一个目标(即单击的按钮),如果您将$id回显到该按钮的数据属性中,则目标中可访问的相关id:
<input data-id="<?php echo $id;?>" class="tweetdelete" type="submit" value="delete">
你在美国的选择对于公司的tweet来说并不特殊。传递给JS函数的事件将附带一个目标(即单击的按钮),如果您将$id回显到该按钮的数据属性中,则目标中可访问的相关id:
<input data-id="<?php echo $id;?>" class="tweetdelete" type="submit" value="delete">
啊,好的,我明白了。因为,当前的方法是只选择表单列表中的第一个id,对吗?@user715564:yes
val()
从选择器返回第一个元素的值。因为,当前的方法只是选择表单列表中的第一个id,对吗?@user715564:yesval()
返回选择器中第一个元素的值。您没有发布删除查询。您没有发布删除查询。