如何将jQuery就地编辑器与$wpdb->更新相结合

时间:2012-09-10 作者:Andrea Pinti

我正在尝试使用jQuery就地编辑器(http://code.google.com/p/jquery-in-place-editor/)在WordPress上更新数据库中自定义表的某些值。

我对AJAX(第一次尝试使用它)或MYSQL不是很熟练,这就是我遇到困难的原因。我会尽可能用最好的方式解释我的问题。

我想要的是更改column (电话)内部table (wp\\U esn\\U持卡人)。每行有一个唯一的ID (id\\U持卡人)。

我可以在页面内顺利运行jQuery就地js,调用“save.php”

<script type="text/javascript" charset="utf-8">
  $(document).ready(function() {
    $(".editable").editInPlace({
      url: "http://example.com/save.php",
    });
  });
</script>
使用save。php我尝试使用以下代码更新该值

<?php
global $wpdb; 

$update_value = $_POST[\'update_value\'];
$element_id = $_POST[\'element_id\'];
$original = $_POST[\'original_html\'];

$table = \'esn_cardholder\';
$row_id = $_POST[\'element_id\'];

$data_array = array(\'telephone\' => $_POST[\'update_value\']);
$where_array = array(\'id_cardholder\' => $row_id);
$wpdb->update( $wpdb->prefix . $table, $data_array, $where_array )
?> 
使用Firebug的控制台,我可以看到以下内容:

Parameters application/x-www-form-urlencoded
element_id  278
original_html   old-number
original_value  old-number
update_value    new-number

Source update_value=new-number&element_id=278&original_html=old-number&original_value=old-number
这东西不会更新数据库,我显然不知道为什么。我知道我应该清理查询,但一旦它工作起来,我可以考虑:)。

提前感谢

1 个回复
SO网友:Andrea Pinti

为了使用wpdb函数,我不得不加载WordPress。多傻啊:p。

为此:

$parse_uri = explode( \'wp-content\', $_SERVER[\'SCRIPT_FILENAME\'] );
require_once( $parse_uri[0] . \'wp-load.php\' );
最后:

global $wpdb; 

结束

相关推荐

模板中的AJAX请求

在这里,我试图对来自模板的安全ajax请求做出准确的决定。AJAX总是让我感到害怕的是,被调用的脚本位置是公共的:http://www.mydomain.com/wp-content/themes/mytheme/inc/myscript.php 我只是对这种公共知识感到不舒服。在仍然能够自信地进行AJAX调用的同时,有没有一种合适的方法可以让窥探者远离该脚本?