只有在WordPress中使用时才与独立Ajax CRUD脚本冲突-不能更新值


Conflict with stand-alone Ajax CRUD script only when used within WordPress - Can't update values

我试图将"ajaxCRUD"类(http://ajaxcrud.com/)与WordPress集成。我希望实现的是有一个页面模板,使用这个特定的类显示来自数据库的值。

ajaxCRUD本身是可靠的,并且单独工作很好。然而,我认为WordPress中存在一些冲突,因为一旦我将其放入页面模板中,我就失去了更新记录的能力。此时,数据表正在显示,但在编辑/提交任何值时,wordpress主页/索引页将被加载。奇怪的是,在加载索引页而不是更新值时,URL中有一个参数包含我试图更新的列名和值!

示例:链接显示:localhost/dealerwp/?text_tblDemofldField11 = myupdatetext其中fldField1是我试图更新的列,(pkID是1),tblDemo是表的名称,myupdatetext是我在尝试更新

值时输入的文本。

这里可能发生了什么?

我迷路了,拔出我剩下的头发…它可能是一些ajax与WordPress冲突?或者是。htaccess?我不能为我的生活弄清楚为什么一旦包装在一个wordpress页面模板,以前的工作代码现在被打破,并发布数据到URL参数,它应该用来更新表。

我正在使用的代码如下,如果有人想看一看。

再次感谢您的帮助/指出正确的方向。

<?php
/**
 * Template Name: DealerCRUD Template
 * Description: A Page Template that showcases Sticky Posts, Asides, and Blog Posts
 *
 * The showcase template in Twenty Eleven consists of a featured posts section using sticky posts,
 * another recent posts area (with the latest post shown in full and the rest as a list)
 * and a left sidebar holding aside posts.
 *
 * We are creating two queries to fetch the proper posts and a custom widget for the sidebar.
 *
 * @package WordPress
 * @subpackage Twenty_Eleven
 * @since Twenty Eleven 1.0
 */
require_once('./preheader.php'); // <-- this include file MUST go first before any HTML/output
#the code for the class
include ('./ajaxCRUD.class.php'); // <-- this include file MUST go first before any HTML/output
#this one line of code is how you implement the class
########################################################
##
$tblDemo = new ajaxCRUD("Item", "tblDemo", "pkID", "/");
##
########################################################
## all that follows is setup configuration for your fields....
## full API reference material for all functions can be found here - http://ajaxcrud.com/api/
## note: many functions below are commented out (with //). note which ones are and which are not
#i can define a relationship to another table
#the 1st field is the fk in the table, the 2nd is the second table, the 3rd is the pk in the second table, the 4th is field i want to retrieve as the dropdown value
#http://ajaxcrud.com/api/index.php?id=defineRelationship
//$tblDemo->defineRelationship("fkID", "tblDemoRelationship", "pkID", "fldName", "fldSort DESC"); //use your own table - this table (tblDemoRelationship) not included in the installation script
#i don't want to visually show the primary key in the table
$tblDemo->omitPrimaryKey();
#the table fields have prefixes; i want to give the heading titles something more meaningful
$tblDemo->displayAs("fldField1", "Field1");
$tblDemo->displayAs("fldField2", "Field2");
$tblDemo->displayAs("fldCertainFields", "Certain Fields");
$tblDemo->displayAs("fldLongField", "Long Field");
$tblDemo->displayAs("fldCheckbox", "Is Selected?");
#set the textarea height of the longer field (for editing/adding)
#http://ajaxcrud.com/api/index.php?id=setTextareaHeight
$tblDemo->setTextareaHeight('fldLongField', 150);
#i could omit a field if I wanted
#http://ajaxcrud.com/api/index.php?id=omitField
//$tblDemo->omitField("fldField2");
#i could omit a field from being on the add form if I wanted
//$tblDemo->omitAddField("fldField2");
#i could disallow editing for certain, individual fields
//$tblDemo->disallowEdit('fldField2');
#i could set a field to accept file uploads (the filename is stored) if wanted
//$tblDemo->setFileUpload("fldField2", "uploads/");
#i can have a field automatically populate with a certain value (eg the current timestamp)
//$tblDemo->addValueOnInsert("fldField1", "NOW()");
#i can use a where field to better-filter my table
//$tblDemo->addWhereClause("WHERE (fldField1 = 'test'");
#i can order my table by whatever i want
//$tblDemo->addOrderBy("ORDER BY fldField1 ASC");
#i can set certain fields to only allow certain values
#http://ajaxcrud.com/api/index.php?id=defineAllowableValues
$allowableValues = array("Allowable Value 1", "Allowable Value2", "Dropdown Value", "CRUD");
$tblDemo->defineAllowableValues("fldCertainFields", $allowableValues);
//set field fldCheckbox to be a checkbox
$tblDemo->defineCheckbox("fldCheckbox");
#i can disallow deleting of rows from the table
#http://ajaxcrud.com/api/index.php?id=disallowDelete
//$tblDemo->disallowDelete();
#i can disallow adding rows to the table
#http://ajaxcrud.com/api/index.php?id=disallowAdd
//$tblDemo->disallowAdd();
#i can add a button that performs some action deleting of rows for the entire table
#http://ajaxcrud.com/api/index.php?id=addButtonToRow
//$tblDemo->addButtonToRow("Add", "add_item.php", "all");
#set the number of rows to display (per page)
$tblDemo->setLimit(3);
#set a filter box at the top of the table
//$tblDemo->addAjaxFilterBox('fldField1');
#if really desired, a filter box can be used for all fields
$tblDemo->addAjaxFilterBoxAllFields();
#i can set the size of the filter box
//$tblDemo->setAjaxFilterBoxSize('fldField1', 3);
#i can format the data in cells however I want with formatFieldWithFunction
#this is arguably one of the most important (visual) functions
$tblDemo->formatFieldWithFunction('fldField1', 'makeBlue');
$tblDemo->formatFieldWithFunction('fldField2', 'makeBold');
//$tblDemo->modifyFieldWithClass("fldField1", "zip required");  //for testing masked input functionality
//$tblDemo->modifyFieldWithClass("fldField2", "phone");         //for testing masked input functionality
//$tblDemo->onAddExecuteCallBackFunction("mycallbackfunction"); //uncomment this to try out an ADD ROW callback function
?>
            <div style="float: left">
            Total Returned Rows: <b><?=$tblDemo->insertRowsReturned();?></b>    <br />
    </div>
    <div style="clear:both;"></div>
<?
     #actually show the table
     $tblDemo->showTable();
    #my self-defined functions used for formatFieldWithFunction
    function makeBold($val){
    return "<b>$val</b>";
  }
    function makeBlue($val){
    return "<span style='color: blue;'>$val</span>";
  }
    function myCallBackFunction($array){
    echo "THE ADD ROW CALLBACK FUNCTION WAS implemented";
    print_r($array);
  }
?>

您的脚本位于ajaxCRUD目录内吗?检查ajaxcrud_root在ajaxcrudd .class.php中的设置(大约第307行)一旦你设置好了,你可以在:

中去掉, "/"
$tblDemo = new ajaxCRUD("Item", "tblDemo", "pkID", "/");