【发布时间】:2020-03-03 16:54:46
【问题描述】:
我在表格的每一行上都有一个取消按钮,该按钮在 while 循环中自动填充。 $id 正确解析,但是当我单击取消按钮时,所有活动行都被修改。我只希望修改相关的行。
所以在 php 中的 while 循环中:
<tr id="dataTable">
<td id="nom"><?php echo $nom;?></td>
<td id="statut"><?php echo $statut;?> </td>
<td id="<?php echo $id;?>" >
<a id="<?php echo $id;?>" href="#" title="Annuler"
onclick="document.write('<?php
$queryannuler = "UPDATE wp_RDV SET statut = 'Testy' WHERE id_RDV = '".$id."'";
$resultatannuler = $connexion->query($queryannuler); ?>'); location.reload(); 'return false';">Annuler</a>
</td>
</tr>
我的问题是所有行的“statut”列都在更新,而不仅仅是我单击取消按钮的行。感谢您的帮助。
更新 我试图通过使用 ajax 来实现您的不同建议。这很难。我没有在原始帖子中指定我使用的是 Wordpress 框架。所以我修改了@ssurli 代码以考虑到 wordpress
<td id="<?php echo $id;?>" >
<a id="<?php echo $id;?>" class="button delete" href="javascript:void(0)" title="Annuler"
onclick="cancelRecord('<?php echo $id; ?>')">Annuler</a>
</td>
<script>
function cancelRecord(id) {
jQuery.ajax({
type: 'post',
url: ajaxurl,
data: {id:id},
action: 'delete_rdv',
success: function(response) {
return;
},
error: function(jqXHR, status, error) {
alert('Error: Please refresh the page');
return;
},
complete: function() {
console.log('The function is hooked up');
location.reload();
console.log('The function is hooked up2');
}
});
}
AND 在我的functions.php 文件中
add_action( 'wp_ajax_delete_rdv', 'delete_rdv' );
add_action( 'wp_ajax_nopriv_delete_rdv', 'delete_rdv' );
function delete_rdv() {
$queryannuler = "UPDATE wp_RDV SET statut = 'Testy' WHERE id_RDV = '".$_POST['id']."'";
$resultatannuler = $connexion->query($queryannuler); //include connection file above
return $resultatannuler;
}
我被困在第一个障碍上。 控制台正在发送错误消息: admin.php?page=plugin-voc:1 Uncaught ReferenceError: cancelRecord is not defined
但是我的 cancelRecord 函数就在我的按钮调用之后,所以我不明白这个错误。
【问题讨论】:
-
您的问题需要更多关注。您应该首先了解 ajax 调用是如何工作的。访问w3schools.com/php/php_ajax_php.asp 或使用jquery.com 之类的库来执行将执行取消的ajax 调用。如果您仍然有问题,请再次使用 ajax 调用,我们将为您提供帮助
-
也许我用“取消”这个词误导了你。此按钮所做的只是更改数据库列之一中的文本。我只是不明白为什么它会更改多行中的文本,而不仅仅是相关行。我真的需要 ajax 来做到这一点吗?
-
当 JavaScript 事件发生时(在浏览器上),您想执行 php 代码(在服务器上)。看看 ajax,你就会明白它是如何发展的。您无法按照您尝试的方式从 javascript 在服务器上执行代码
-
错误的原因是您在渲染页面时更新值,而不是在单击按钮时。测试一下,加载页面但不要点击任何东西。即使你不想处理 AJAX,你也至少需要 REST。
标签: php database while-loop sql-update