每行while循环中的php变量值

每行while循环中的php变量值,php,database,while-loop,sql-update,Php,Database,While Loop,Sql Update,我在while循环中自动填充的表的每一行上都有一个cancel按钮。 $id解析正确,但当我单击“取消”按钮时,所有活动行都被修改。我只想修改相关的行 因此,在php中的while循环中: <tr id="dataTable"> <td id="nom"><?php echo $nom;?></td> <td id="statut"><?php echo $statut;?

我在while循环中自动填充的表的每一行上都有一个cancel按钮。 $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> 
我被困在第一个栏上。 控制台正在发送错误消息: admin.php?page=插件voc:1未捕获引用错误:未定义cancelRecord

但是我的取消记录功能就在我的按钮调用之后,所以我不理解这个错误。

这里是工作代码

按如下所示更新表行:

<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="javascript:void(0)" title="Annuler"   
     onclick="cancelRecord('<?php echo $id; ?>')">Annuler</a>
    </td>
</tr> 


这是最初的html请求

    <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>
进入数据{}

data: {
        action: 'delete_rdv',
        id:id},
以下是完整的javascript代码:

jQuery( document ).ready(function($){ $('.button.delete').on('click', function(){ let id = $(this).attr('id'); cancelRecord(id); }); });

function cancelRecord(id) {
jQuery.ajax({
    type: 'post',
    url: ajaxurl, 
    data: {
        action: 'delete_rdv',
        id:id},

    success: function(response) {
        return;
    },
    error: function(jqXHR, status, error) {
        alert('Error: Please refresh the page');
        return;
    },
    complete: function() {
        location.reload();
    }
});
}
ajax调用我放在functions.php文件中的函数delete_rdv

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;
}
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 = 'Annulé' WHERE id_RDV = '".$_POST['id']."'";
$resultatannuler = $connexion->query($queryannuler);  //include connection file above
return $resultatannuler;
}

特别感谢@jeprubio,感谢他不遗余力地用ajax的方式看待问题,感谢@sssurii发布代码并回答我的问题。

你的问题需要更多关注。您应该首先了解ajax调用是如何工作的。访问或使用类似于执行ajax调用的库来执行取消。如果您在ajax调用中仍然有问题,请再次询问,我们将帮助您也许我误导您使用“取消”这个词。此按钮所做的只是更改数据库某一列中的文本。我只是不明白为什么它在多行中更改文本,而不仅仅是相关行。我真的需要ajax吗?当JavaScript事件发生(在浏览器上)时,您希望(在服务器上)执行php代码。看看ajax,您将看到它是如何发展的。您无法按照尝试的方式在服务器上执行javascript代码错误的原因是您在呈现页面时更新了值,而不是在单击按钮时。测试它,加载页面,但不要点击任何东西。即使你不想处理AJAX,你至少需要休息。嗨,你能看看我的新代码并告诉我为什么它不起作用吗?请解决控制台错误,你可以在文档上绑定click事件。在脚本中添加以下代码:
jQuery(document).ready(函数($){('.button.delete').on('click',函数(){let id=$(this.attr('id');取消记录(id);})我在函数内部和之前尝试了此代码,但它不起作用。我感觉这个错误来自这个部分:admin.php?page=plugin voc:1。我必须调查一下什么是插件voc。谢谢@sssurii的帮助。我会让你知道的
action: 'delete_rdv',
data: {
        action: 'delete_rdv',
        id:id},
jQuery( document ).ready(function($){ $('.button.delete').on('click', function(){ let id = $(this).attr('id'); cancelRecord(id); }); });

function cancelRecord(id) {
jQuery.ajax({
    type: 'post',
    url: ajaxurl, 
    data: {
        action: 'delete_rdv',
        id:id},

    success: function(response) {
        return;
    },
    error: function(jqXHR, status, error) {
        alert('Error: Please refresh the page');
        return;
    },
    complete: function() {
        location.reload();
    }
});
}
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 = 'Annulé' WHERE id_RDV = '".$_POST['id']."'";
$resultatannuler = $connexion->query($queryannuler);  //include connection file above
return $resultatannuler;
}