0

「ajaxCRUD」クラス ( http://ajaxcrud.com/ ) を WordPress に統合しようとしています。私が達成したかったのは、この特定のクラスを利用してデータベースからの値を表示するページ テンプレートを持つことでした。

ajaxCRUD 自体は堅実で、単体でも十分に機能します。ただし、WordPress には何か競合があると思います。ページ テンプレートに落とし込むと、レコードを更新する機能が失われるからです。この時点でデータテーブルが表示されていますが、値を編集/送信すると、代わりにワードプレスのホームページ/インデックスページが読み込まれます。奇妙なことに、値を更新する代わりにインデックス ページを読み込むと、更新しようとしていた列名と値を含むパラメーターが URL に含まれています。

例: リンクが表示されます: localhost/dealerwp/?text_tblDemofldField11=myupdatetext ここで、fldField1 は更新しようとしている列です (pkID は 1) & tblDemo はテーブルの名前です & myupdatetext は更新しようとしたときに入力したテキストです値

ここで何が起こっているのでしょうか?

私は道に迷い、残りの髪を引き抜いています... WordPress との ajax の衝突でしょうか? または多分.htaccess?以前は機能していたコードが壊れており、テーブルの更新に使用する必要がある URL パラメータにデータを投稿している wordpress ページ テンプレートにラップされた理由を、私の人生では理解できません。

私が使用しているコードは以下のとおりです。

繰り返しになりますが、正しい方向への支援/指摘をよろしくお願いします。

<?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);
  }
?>
4

1 に答える 1

0

スクリプトは ajaxCRUD ディレクトリ内にありますか? ajaxCRUD.class.php の $ajaxcrud_root の設定を確認してください (307 行目あたり) , "/"

$tblDemo = new ajaxCRUD("Item", "tblDemo", "pkID", "/");
于 2013-05-16T23:46:54.957 に答える