如何通过提交按钮或复选框更改数据库中的字段?

时间:2015-11-24 作者:sisco

我正在尝试为wordpress创建一个插件,其中表单将数据存储在数据库中。我正在尝试创建一个提交按钮,以将一行的状态(字段)从0更新为1,但它正在更新所有列,如何仅更新所选列。

看看代码。。。

<table class="widefat">
<thead>
<tr><th class="row-title"><?php esc_attr_e( \'Application\', \'aa\' ); ?></th>
   <th class="row-title"><?php esc_attr_e( \'Name\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Email\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Message\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Time\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Birthplace\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Birthday\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Sex\', \'aa\' ); ?></th>
<th><?php esc_attr_e( \'Status\', \'aa\' ); ?></th>
</th>
</tr>
</thead>
<tbody>
<?php foreach($client_msg as $client): ?>
<tr>
<td><?php esc_attr_e($client->name,\'aa\');?></a></strong></td>
<td><?php esc_attr_e($client->name,\'aa\');?></td>
<td><?php esc_attr_e($client->email,\'aa\');?></td>
<td><?php esc_attr_e($client->msg,\'aa\');?></td>
<td><?php esc_attr_e($client->time,\'aa\');?></td>
<td><?php esc_attr_e($client->birthplace,\'aa\');?></td>
<td><?php esc_attr_e($client->birthday,\'aa\');?></td>
<td><?php esc_attr_e($client->Sex,\'aa\');?></td>
<td><input type="submit" name="activate" id="activate" value="Activate"       onclick="change()" /></td>
</tr>
</tr>
<?php endforeach;?>
</tbody>

</table>
</div>

<script type="text/javascript">
function change(){

$sql="UPDATE wp_applications SET status = \'1\'" ;
$result = mysql_query($sql) or die(mysql_error());

?>}

</script>
这就是wordpress中从数据库收集数据的表单的外观enter image description here

我需要通过该按钮更改数据库中的字段,但当我单击时,所有记录都会更改。

其想法是创建一个插件,用于应用程序,然后选择候选人进行面试。

2 个回复
SO网友:nipeco

我会在change() 功能类似id.我有点困惑,您的PHP代码被包装在JavaScript标记中:D

在PHP中,我会这样做:

function change($id) {
    $sql="UPDATE wp_applications SET status = \'1\' WHERE id = \'$id\'";
...
在形式中,我假设id存储在id列中:

<input type="submit" name="activate" id="activate" value="Activate"       onclick="change($client->id)" />

SO网友:jamiek

取决于您计划如何存储数据。

如果您只想通过表单用户输入存储任意数据,我使用强大的Pro插件。它非常强大,有许多用于操作和查看数据的选项。

如果您想将数据绑定到用户元,我一直在使用这种方法:https://patrickshampine.com/2014/updating-user-meta-admin-ajax-frontend/ 它允许前端在配置文件页面之外进行编辑。

同时,如果您想使用wordpress提供的所有内容,您可以创建一个包含所有内容的“配置文件页面”,因为您的所有数据都与用户相关,并允许用户更新其配置文件。将字段添加到配置文件页面,如下所示:

https://developer.wordpress.org/plugins/users/working-with-user-metadata/

我成功使用的最后一个选项非常干净。您只需要根据需要添加字段。

杰米

PS:通常您希望通过enqueue\\u script()将您在wordpress中使用的任何javascript排队。

相关推荐