ÔÚPHPÓëDB2 9ÖÐʹÓÃAjax£ºXajax
|
PHP Êdz£ÓÃÓÚ¿ª·¢ Web Ó¦ÓóÌÐòµÄÒ»Öֽű¾±àÖÆÓïÑÔ¡£ Asynchronous JavaScript and XML (Ajax) ÔòÊÇ×éºÏ JavaScript¡¢ Document Object Model (DOM) ºÍ XMLHttpRequest ¼¼Êõ£¬ÒÔÌṩ¿Í»§»úÓë·þÎñÆ÷Ö®¼äµÄ¶¯Ì¬½»»¥µÄÒ»ÖÖ Web ¼¼Êõ¡£ÓкܶàÓÃÓÚÓë PHP Ò»ÆðʹÓà Ajax µÄ PHP Àà¿â£¬Xajax ¾ÍÊÇÆäÖÐÒ»¸ö£¬ËüÊÇ¿ª·ÅÔ´´úÂëµÄ¡¢ÃæÏò¶ÔÏóµÄ PHP Àà¿â¡£ÔÚ±¾ÎÄÖУ¬Ñ§Ï°ÈçºÎʵÏÖ PHP¡¢Ajax ºÍ Xajax£¬ÒÔ¿ª·¢Ò»¸ö·ÃÎÊ IBM? DB2? 9 for Linux?£¬ UNIX?£¬ and Windows? µÄ¶¯Ì¬ Web Ó¦ÓóÌÐò½â¾ö·½°¸¡£ ¡¡¡¡¼ò½é ¡¡¡¡Ä¿Ç°£¬³¬¹ý 40% µÄ Web Ó¦ÓóÌÐòʹÓà PHP ×÷Ϊ½Å±¾±àÖÆÓïÑÔ¡£Asynchronous JavaScript and XML (Ajax) ÊÇ×éºÏ JavaScript¡¢ Document Object Model (DOM) ºÍ XMLHttpRequest ¼¼Êõ£¬ÒÔÌṩ¿Í»§»úÓë·þÎñÆ÷Ö®¼äµÄ¶¯Ì¬½»»¥µÄÒ»ÖÖ Web ¼¼Êõ¡£ÓкܶàÓÃÓÚÓë PHP Ò»ÆðʹÓà Ajax µÄ PHP Àà¿â£¬Xajax ¾ÍÊÇÆäÖÐÒ»¸ö£¬ËüÊÇ¿ª·ÅÔ´´úÂëµÄ¡¢ÃæÏò¶ÔÏóµÄ PHP Àà¿â£¬Í¨¹ýËü¿ÉÒÔÔÚ PHP ÖÐʹÓà Ajax¡£ ¡¡¡¡¾Ù¸öÀý×Ó£¬¼ÙÉèÓÐÒ»ÃûÓû§ÕýÔÚÌîдһ·Ý±íµ¥£¬ÒÔ±ãÔÚÒ»¸ö Web Õ¾µãÉÏ×¢²á¡£Í¨³££¬Ö»ÓÐÔÚÌá½»±íµ¥Ê±²Å»á¼ì²é±íµ¥Êý¾ÝµÄÓÐЧÐÔ¡£µ«ÊÇÈç¹ûʹÓà Ajax£¬½«Ê¹Ó÷þÎñÆ÷Ó¦ÓóÌÐòÖеÄÒµÎñÂß¼¶¯Ì¬ÑéÖ¤Ìí¼Óµ½±íµ¥µÄÊý¾Ý¡£ Òò´Ë£¬²»±Ø½«Õû¸ö±íµ¥Ìá½»µ½·þÎñÆ÷ÒÔ¼ì²é±íµ¥ÖеÄÊý¾ÝÊÇ·ñÓÐЧ¡£Òì²½£¨Asynchronous£©Òâζ×Å XMLHttpRequest ¶ÔÏóµÄ send() ·½·¨¿ÉÒÔÁ¢¼´·µ»Ø£¬²»±ØµÈ´ý HTTP ÇëÇóÍê³É£¬¶ø·¢³öÇëÇóµÄ HTML/JavaScript Ò³ÃæÔò¿ÉÒÔ¼ÌÐø½øÐÐÆäËûµÄ´¦Àí¡£Òò´Ë£¬¿ª·¢ÈËÔ±¿ÉÒÔ·¢ÏÖ£¬µ± XMLHttpRequest ¶ÔÏóÒì²½µØ´¦Àí HTTP ÏìӦʱ£¬¿ÉÒÔ¼ÌÐø´¦Àí·¢³ö XMLHttpRequest ÇëÇóµÄ HTML/JavaScript Ò³Ãæ¡£ ¡¡¡¡Xajax ¸ÅÊö ¡¡¡¡Xajax ÓÃÓÚÒÔ PHP ½Å±¾±àдµÄ¿Í»§»úÓ¦ÓóÌÐòºÍ·þÎñÆ÷¶ËÓ¦ÓóÌÐòÖ®¼ä½øÐÐÒì²½µÄͨÐÅ¡£¶ÔÓÚ¿ÉÄÜ´Ó¿Í»§»úÓ¦ÓóÌÐò·ÃÎʵķþÎñÆ÷¶ËµÄ PHP º¯Êý£¬Xajax Ϊ֮Éú³É JavaScript °ü×°Æ÷º¯Êý¡£µ±Ò»¸ö¿Í»§»úÓ¦ÓóÌÐòµ÷Óðü×°Æ÷º¯Êýʱ£¬»áÉú³ÉÒ»¸ö XMLHttpRequest ¶ÔÏ󣬲¢½«Ò»¸ö XMLHttpRequest HTTP ÇëÇó·¢Ë͵½·þÎñÆ÷¡£ ¡¡¡¡ÔÚ·þÎñÆ÷ÉÏ£¬xajax ¶ÔÏóÊÕµ½ XMLHttpRequest£¬²¢µ÷ÓÃÓë JavaScript °ü×°Æ÷º¯Êý¶ÔÓ¦µÄ PHP º¯Êý¡£Í¨¹ý Xajax ×¢²áµÄ PHP º¯ÊýµÄĬÈÏÇëÇóÀàÐÍÊÇ POST¡£PHP º¯Êý·µ»ØÒ»¸ö XML ÏìÓ¦£¬ºóÕßÓÉ xajax ¶ÔÏ󷵻ص½¿Í»§»úÓ¦ÓóÌÐò¡£¸ù¾Ý XML ÏìÓ¦ÖеÄָʾ£¬Xajax µÄ JavaScript ÏûÏ¢±Ã¸üпͻ§»úÊäÈëÒ³ÃæµÄÄÚÈÝ¡£Xajax µÄÒ»¸öÌØÐÔ¿ÉÒÔÈ·±£Ö»ÓÐÒѾ±»Ð޸ĵÄÊý¾Ý²Å»á±»¸üС£ ¡¡¡¡Òª¿ªÊ¼´´½¨×Ô¼ºµÄ Web Ó¦ÓóÌÐò£¬ÎÒÃÇÊ×ÏÈ¿´¿´°²×°²úÆ·ºÍ´´½¨Êý¾Ý¿âµÄ²½Ö衣Ȼºó£¬Äú¾Í¿ÉÒÔÉîÈëÑо¿Ó¦ÓóÌÐòµÄ´´½¨¡£ ¡¡¡¡°²×° DB2 for Linux, UNIX, and Windows ¡¡¡¡ÓÃÓÚ DB2 Êý¾Ý¿âµÄ PHP À©Õ¹¿ÉÒÔÓë DB2 for Linux, UNIX, and Windows V8.2 »ò¸ü¸ß°æ±¾Ò»ÆðʹÓá£ÏÂÃæµÄ°²×°ËµÃ÷ʹÓà DB2 Enterprise 9 for Windows£º ¡¡¡¡ÏÂÔØ DB2 9 Êý¾Ý·þÎñÆ÷£¨¼û ²Î¿¼×ÊÁÏ£©¡££¨±¾ÀýʹÓõÄÊÇ DB2 Enterprise 9£¬µ«Êµ¼ÊÉÏÒ²¿ÉÒÔʹÓÃÆäËû°æ±¾µÄ DB2¡££© ¡¡¡¡½« db2_v9_ese_win_32.zip ½âѹµ½Ò»¸öĿ¼¡£ ¡¡¡¡Òª°²×° DB2£¬Ë«»÷ C:DB2ESEimagesetup.exe Ó¦ÓóÌÐò¡£ ¡¡¡¡ÔÚ IBM DB2 Setup Launchpad ÖУ¬µ¥»÷ Install a Product¡£ ¡¡¡¡ÔÚ DB2 Enterprise Server µÄ±êÇ©Öе¥»÷ Install New¡£Õâʱ»á³öÏÖ DB2 Setup Ïòµ¼¡£µ¥»÷ Next¡£ ¡¡¡¡½ÓÊÜÐí¿ÉÐÒ飬Ȼºóµ¥»÷ Next¡£ ¡¡¡¡Ñ¡ÔñÒ»ÖÖ°²×°ÀàÐÍ£¨µäÐͰ²×°£©£¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡Ñ¡Ôñ installation and response file creation£¨Ä¬ÈÏ£©£¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡Ñ¡ÔñÒ»¸ö°²×°Îļþ¼Ð£¨Ä¬ÈÏΪ C:Program FilesIBMSQLLIB£©£¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡Ö¸¶¨Óû§Ãû£¨db2£©ºÍÃÜÂ루db2admin£©£¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡DB2 ʵÀý DB2 ×÷ΪĬÈÏ DB2 ʵÀý±»ÁгöÀ´¡£Í¨¹ýµ¥»÷ Configure °´Å¥£¬¿ÉÒÔΪĬÈÏ DB2 ʵÀýÅäÖ÷þÎñÃû³ÆºÍÐÒ顣ĬÈÏ·þÎñÃû³ÆÎª db2c_DB2£¬Ä¬È϶˿ÚΪ 5000¡£µ¥»÷ Next¡£ ¡¡¡¡ÔÚ Prepare the DB2 tools Àà±ð¿ò¼ÜÖÐÑ¡ÔñĬÈÏÉèÖã¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡ÈçÓбØÒª£¬ÉèÖÃ֪ͨ£¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡ÔÚ Enable operating system security for DB2 objects ÖÐÑ¡ÔñĬÈÏÉèÖã¬È»ºóµ¥»÷ Next¡£ ¡¡¡¡µ¥»÷ Finish °´Å¥°²×°Êý¾Ý¿â·þÎñÆ÷¡£ ¡¡¡¡ÏÖÔÚ´´½¨Ò»¸öʾÀýÊý¾Ý¿â¡£×÷ΪÏȾöÌõ¼þ£¬½« DB2INSTANCE »·¾³±äÁ¿ÉèÖÃΪ DB2£ºÑ¡Ôñ System Properties > Advanced > Environment Variables > System Variables¡£Ò²¿ÉÒÔÔÚ DB2 ÃüÁî´°¿ÚÖÐʹÓÃÒÔÏÂÃüÁîÀ´ÉèÖà DB2INSTANCE »·¾³±äÁ¿£º set DB2INSTANCE=DB2 ¡¡¡¡Òª´´½¨Ò»¸öʾÀýÊý¾Ý¿â£¬ÔÚ DB2 First Steps ¿ò¼ÜÖÐÑ¡Ôñ Database Creation¡£µ¥»÷ Create SAMPLE Database °´Å¥¡£ Ò²¿ÉÒÔʹÓÃÒÔÏÂÃüÁî´´½¨Ê¾ÀýÊý¾Ý¿â£º db2sampl ¡¡¡¡Ê¹ÓÃÒÔÏ DB2 ÃüÁ DB2 Êý¾Ý¿â SAMPLE ×¢²áΪ ODBC Êý¾ÝÔ´£º db2 catalog system odbc data source sample ¡¡¡¡°²×° PHP ºÍ Xajax ¡¡¡¡Xajax ÊÇÒ»¸ö PHP Àà¿â£¬Òò´ËÊ×ÏÈÏÂÔØºÍ°²×° PHP 5¡£PHP 5 ¿ÉÒÔ°²×°Ôںܶ಻ͬµÄ Web ·þÎñÆ÷ÉÏ¡£±¾ÎÄÌÖÂÛÔÚ Windows ÉÏʹÓà Apache Web ·þÎñÆ÷ÅäÖà PHP 5¡£ ¡¡¡¡ÏÂÃæÊǰ²×°ºÍÅäÖà PHP µÄ²½Ö裺 ¡¡¡¡ÏÂÔØ PHP 5.2.0 £¨¼û ²Î¿¼×ÊÁÏ£©¡£ ¡¡¡¡½« PHP zip Îļþ½âѹµ½Ò»¸ö°²×°Ä¿Â¼ÖУ¨ÀýÈç C:/PHP£©¡£ ¡¡¡¡ÏÂÔØºÍ°²×° Apache HTTP Server 2.0¡£ ¡¡¡¡ÔÚ PATH »·¾³ÏµÍ³±äÁ¿ÖÐÌí¼Ó°²×° PHP 5 µÄĿ¼£¨C:/PHP£©¡£ ¡¡¡¡½« C:/PHP Ŀ¼ÖÐµÄ php.init ÎļþÐÞ¸ÄΪ php.ini¡£ ¡¡¡¡±¾ÎÄÖеÄʾÀýÓ¦ÓóÌÐò´Ó DB2 Êý¾Ý¿âÖдæÈ¡Êý¾Ý¡£Äú½«Ê¹Óà PHP PDO À©Õ¹Á¬½Óµ½ DB2 Êý¾Ý¿â¡£ ¡¡¡¡ÔÚ php.ini ÅäÖÃÎļþÖУ¬ÐèҪͨ¹ýÖ¸¶¨ extension_dir = "./ext" ÉèÖÃÀ©Õ¹Ä¿Â¼¡£Òª¼¤»î PDO À©Õ¹£¬ÐèҪȥµô php.ini ÎļþÖÐÏÂÃæÕâÒ»ÐÐÇ°ÃæµÄ ¡®;¡¯£º extension=php_pdo.dll ¡¡¡¡´ËÍ⻹ÐèÒª¼¤»î PDO ODBC Çý¶¯³ÌÐò¡£ÔÚ php.ini ÎļþÖУ¬È¥µôÏÂÃæÕâÒ»ÐÐÇ°ÃæµÄ ¡®;¡¯£º extension=php_pdo_odbc.dll ¡¡¡¡½« PHP 5 °²×°ÔÚ Apache HTTP ·þÎñÆ÷ÖС£ÔÚ <Apache2>/conf/httpd.conf ÎļþÖУ¬Ìí¼Ó£º # For PHP 5 ¡¡¡¡Ä¬ÈÏÇé¿öÏ£¬<Apache2> Ŀ¼ÊÇĿ¼ C:/Program Files/Apache Group/Apache2¡£ÎÒÃÇÒѾÔÚ C:/Apache2/Apache2 Ŀ¼Öа²×°ÁË Apache2 ·þÎñÆ÷¡£Èç¹û PHP 5 ±»°²×°µ½ C:/PHP ÒÔÍâµÄĿ¼ÖУ¬ÄÇôÓÃÄǸöÄ¿Â¼Ìæ»» C:/PHP¡£ÔÚÐÞ¸Ä httpd.conf Ŀ¼֮ºó£¬ÖØÐÂÆô¶¯ Apache Web ·þÎñÆ÷¡£½«ÒªÔÚ Apache Web ·þÎñÆ÷ÖÐÔËÐÐµÄ PHP Îļþ¸´ÖƵ½ C:/Apache2/Apache2/htdocs Ŀ¼ÖС£ ¡¡¡¡ÏÂÔØ Xajax 0.2.4¡£ÔÚ C:/Apache2/Apache2/htdocs Ŀ¼Öд´½¨Ò»¸ö xajax Ŀ¼¡£½« xajax_0.2.4.zip Îļþ½âѹµ½ xajax Ŀ¼ÖС£ ¡¡¡¡´´½¨ DB2 Êý¾Ý¿â±í ¡¡¡¡Xajax Ó¦ÓóÌÐò´ÓÒ»¸ö DB2 Êý¾Ý¿â±íÖмìË÷Êý¾Ý¡£¿ÉÒÔÓÃÒ»¸ö PHP ½Å±¾´´½¨Õâ¸öÊý¾Ý¿â±í¡£´´½¨Ò»¸ö PHP ½Å±¾ createTable.php¡£¶¨ÒåÓÃÓÚÓû§ÃûºÍÃÜÂëµÄ±äÁ¿£º $user = "db2"; ¡¡¡¡Ê¹Óà PDO ¹¹Ô캯Êý»ñµÃÓë DB2 SAMPLE Êý¾Ý¿âµÄÁ¬½Ó£º $connection = new PDO("odbc:SAMPLE", $user, $password); ¡¡¡¡Ä¬ÈÏÇé¿öÏ£¬PDO ¹¹Ô캯Êý´´½¨Ò»¸ö·Ç³Ö¾ÃµÄÁ¬½Ó¡£Èç¹ûÁ¬½Ó³É¹¦£¬Ôò PDO ¹¹Ô캯Êý·µ»ØÒ»¸ö DB2 Êý¾Ý¿âÁ¬½Ó×ÊÔ´¡£µ±Á¬½Ó³É¹¦Ê±£¬Êä³öÏûϢΪ ¡°Connection succeeded¡±¡£µ±Êý¾Ý¿âÁ¬½Óʧ°Üʱ£¬»áÊä³öÁ¬½Ó´íÎóÏûÏ¢¡£¶¨ÒåÓÃÓÚ´´½¨Ò»¸ö±íµÄ SQL Óï¾ä£º $createtable = "CREATE TABLE DB2.Catalog(CatalogId VARCHAR(25), ¡¡¡¡Ê¹Óà exec() º¯ÊýÔËÐиà SQL Óï¾ä£º $connection->exec($createtable); ¡¡¡¡¶¨ÒåÓÃÓÚÏò±íÖÐÌí¼ÓÒ»ÐÐµÄ SQL Óï¾ä£º $addrow = "INSERT INTO DB2.Catalog VALUES("catalog1", "IBM developerWorks",¡¡ ¡¡¡¡Ê¹Óà exec() º¯ÊýÔËÐиà SQL Óï¾ä£º $result=$connection->exec($addrow); ¡¡¡¡ÕâÑù¾ÍÔÚÊý¾Ý¿â±íÖÐÌí¼ÓÁËÒ»ÐС£Êä³öÏûÏ¢£¬ÒÔ±íÃ÷±»Ìí¼ÓµÄÐÐÊý£º print("Added $result rows.n"); ¡¡¡¡ÀàËÆµØ£¬½«ÁíÍâÒ»ÐÐÌí¼Óµ½Êý¾Ý¿â±í Catalog ÖУº $addrow = "INSERT INTO DB2.Catalog VALUES("catalog2", "IBM developerWorks",¡¡ ¡¡¡¡Çåµ¥ 1 ÖÐÏÔʾÁË PHP scriptcreateTable.php¡£½« createTable.php ¸´ÖƵ½ C:/Apache2/Apache2/htdocs Ŀ¼¡£Æô¶¯ Apache Web ·þÎñÆ÷£¨Èç¹ûûÓÐÆô¶¯µÄ»°£©¡£ÔÚÒ»¸öä¯ÀÀÆ÷ÖÐͨ¹ý URL http://localhost/createTable.php ÔËÐÐÕâ¸ö PHP ½Å±¾¡£ÕâÑù½«Éú³ÉÒ»¸öÊý¾Ý¿â±í DB2.Catalog£¬²¢ÏòÕâ¸ö±íÖÐÌí¼ÓÊý¾Ý¡£ ¡¡¡¡Çåµ¥ 1. createTable.php <?php ¡¡¡¡·¢ËÍÒ»¸öÇëÇó ¡¡¡¡ÏÖÔÚÎÒÃÇÀ´¿ª·¢°üº¬Ò»¸öÊäÈë±íµ¥µÄʾÀýÓ¦ÓóÌÐò¡£ÊäÈë±íµ¥ÊÕ¼¯ÓÃÓÚ½«Ò»¸öÀà±ðÌõÄ¿Ìí¼Óµ½Êý¾Ý¿â±í Catalog ÖеÄÊý¾Ý¡£µ±Óû§¿ªÊ¼ÔÚÊäÈë×Ö¶Î Catalog Id ÖÐÊäÈëÊý¾Ýʱ£¬Ò»¸ö XMLHttpRequest HTTP ÇëÇó±»·¢Ë͵½·þÎñÆ÷£¬ÒÔÑéÖ¤Ìí¼ÓµÄ Catalog Id µÄÖµ¡£Èç¹ûÊý¾Ý¿âÖл¹Ã»Óж¨Òå Catalog Id£¬ÔòÏÔʾÏûÏ¢ ¡°Catalog Id is Valid¡±¡£Èç¹ûÊý¾Ý¿âÖÐÒѾ¶¨ÒåÁËÕâ¸ö Catalog Id£¬ÔòÏÔʾÏûÏ¢ ¡°Catalog Id is not Valid¡±£¬Í¬Ê±½ûÓà Create Catalog °´Å¥£¬Catalog Id µÄ×Ö¶ÎÖµ±»Ìí¼Óµ½±íµ¥ÖС£ ¡¡¡¡xajax PHP ¶ÔÏóÔÚ¿Í»§»úÓ¦ÓóÌÐòÓë·þÎñÆ÷Ö®¼äÆðÖнéµÄ×÷Óá£Ê×ÏÈ£¬½« xajax Àà¿â°üÀ¨½øÀ´£º require("./xajax/xajax_0.2.4/xajax.inc.php"); ¡¡¡¡´´½¨Ò»¸ö xajax ¶ÔÏó£º $xajax = new xajax(); ¡¡¡¡·þÎñÆ÷¶ËµÄ´¦ÀíÓÉ PHP º¯ÊýÀ´Ö´ÐС£´´½¨ PHP º¯Êý validateCatalogId($formValues) ºÍ updateCatalog($formValues)¡£ÕâÁ½¸öº¯Êý¶¼´øÓÐÒ»¸ö $formValues ²ÎÊý£º function validateCatalogId($formValues){} ¡¡¡¡Ê¹Óà registerFunction() ·½·¨½«ÕâЩ PHP º¯Êý×¢²áµ½ xajax ¶ÔÏó¡£xajax ¶ÔÏóΪ¿ÉÄÜ´Ó PHP ½Å±¾»òÊäÈë±íµ¥Ê¼þ´¦Àí³ÌÐòÖе÷ÓÃµÄ PHP º¯Êý´´½¨°ü×°Æ÷º¯Êý¡£ $xajax->registerFunction("validateCatalogId"); ¡¡¡¡Xajax Ϊע²áµÄ PHP º¯ÊýÉú³ÉÒì²½°ü×°Æ÷º¯Êý¡£°ü×°Æ÷º¯ÊýÃû³ÆµÄ¸ñʽΪ xajax_phpfunction¡£ ±äÁ¿ phpfunction ÊÇҪΪ֮¶¨Òå°ü×°Æ÷º¯ÊýµÄÒ»¸ö·þÎñÆ÷¶Ë PHP º¯Êý¡£Xajax ͨ¹ý getFormValues(string formId) ·½·¨ÌṩÒì²½±íµ¥´¦Àí¡£ ͨ¹ýʹÓà getFormValues() ·½·¨£¬¿ÉÒÔ½«±íµ¥×Ö¶ÎÖµÊý×é×÷Ϊ²ÎÊýÌá½»¸øÒ»¸ö xajax Òì²½°ü×°Æ÷º¯Êý¡£ »¹¿ÉÒÔʹÓà getFormValues(string formID ,boolean submitDisabledElements, string prefix]) º¯ÊýÌá½»±íµ¥µÄÒ»²¿·Ö£¬¶ø²»ÊÇÌá½»Õû¸ö±íµ¥¡£prefix ²ÎÊýÖ¸¶¨Ö»ÓÐÒÔ¸Ãǰ׺¿ªÍ·µÄ±íµ¥ÔªËØÓ¦¸Ã±»Ìá½»¡£²¼¶û²ÎÊý submitDisabledElements Ö¸¶¨ÊÇ·ñÌá½»±»½ûÓõÄÔªËØ¡£PHP º¯Êý validateCatalogId ºÍ updateCatalog Ϊ±íµ¥×Ö¶ÎÖµÊý×鶨ÒåÁËÒ»¸ö²ÎÊý¡£ÔÚ·¢³ö XMLHttpRequest ֮ǰ£¬Óà processRequests() º¯ÊýÖ¸¶¨ÓÃÓÚ´¦ÀíÇëÇóµÄ xajax ¶ÔÏó£º $xajax->processRequests(); ¡¡¡¡´ËÍ⻹ÔÚÊäÈë±íµ¥µÄ <head></head> ±ê¼ÇÖÐÖ¸¶¨£¬ÔÚ·þÎñÆ÷·µ»Ø XML ÏìÓ¦Ö®ºó£¬xajax Ó¦¸ÃÉú³ÉÈκÎÐèÒªµÄ JavaScript£º <?php $xajax->printJavascript("./xajax/xajax_0.2.4"); ¡¡¡¡¿Í»§»úÓ¦ÓóÌÐò·¢³öÒ»¸ö XMLHttpRequest¡£ÔÚʾÀýÓ¦ÓóÌÐòÖУ¬XMLHttpRequest ÊÇÓÉÊäÈë×Ö¶Î catalogId µÄ onkeyup ʼþ´¦Àí³ÌÐò·¢³öµÄ£º <tr><td>Catalog Id:</td><td><input¡¡¡¡type="text" ¡¡¡¡ÊäÈë×ֶε÷Óðü×°Æ÷º¯Êý xajax_validateCatalogId£¬µ÷ÓÃʱÒÔ±íµ¥×Ö¶ÎÖµÊý×é×÷Ϊ²ÎÊý¡£°ü×°Æ÷º¯Êý½«Ò»¸ö XMLHttpRequest ·¢Ë͵½·þÎñÆ÷¡£xajax ¶ÔÏó½ÓÊÕ XMLHttpRequest£¬²¢µ÷ÓÃÏàÓ¦µÄ PHP º¯Êý validateCatalogId($formValues)¡£ ¡¡¡¡´¦ÀíÇëÇó ¡¡¡¡Xajax Ìṩ xajaxResponse À࣬ÓÃÓÚ½«ÏìÓ¦·¢Ëͻؿͻ§»úÓ¦ÓóÌÐò¡£ÔÚ validateCatalogId º¯ÊýÖУ¬´´½¨Ò»¸ö xajaxResponse ¶ÔÏó£º $objResponse = new xajaxResponse(); ¡¡¡¡validateCatalogId º¯ÊýÑéÖ¤Ìí¼Óµ½ÊäÈë±íµ¥ÖÐµÄ Catalog Id Öµ¡£´Ó $formValues Êý×éÖУ¬¼ìË÷ catalogId ×ֶεÄÖµ£º $catalogId=trim($formValues["catalogId"]); ¡¡¡¡½ÓÏÂÀ´£¬Ê¹Óà PHP PDO À©Õ¹Á¬½Óµ½ DB2 Êý¾Ý¿â£¬²¢ÅÐ¶Ï Catalog ±íÖÐÊÇ·ñΪÊäÈë±íµ¥ÖÐÊäÈëµÄ catalog id Öµ¶¨ÒåÁËÒ»ÐС£ ¡¡¡¡¶¨ÒåÓÃÓÚÓû§ÃûºÍÃÜÂëµÄ±äÁ¿£º $user = "db2"; ¡¡¡¡Ê¹Óà PDO ¹¹Ô캯Êý»ñµÃÓë DB2 Êý¾Ý¿âµÄÒ»¸öÁ¬½Ó£º $connection = new PDO("odbc:SAMPLE", $user, $password); ¡¡¡¡Èç¹ûÁ¬½Ó³É¹¦£¬PDO ¹¹Ô캯Êý·µ»ØÒ»¸ö DB2 Êý¾Ý¿âÁ¬½Ó×ÊÔ´¡£×¼±¸Ò»¸ö SQL Ô¤ÖÃÓï¾ä£¬¸Ã SQL Óï¾ä´Ó Catalog ±íÖÐÑ¡ÔñÓë±íµ¥ÖÐÊäÈëµÄ catalog id Öµ¶ÔÓ¦µÄÒ»ÐС£Ê¹Óà prepare ( string statement [, array driver_options] ) º¯Êý±àÒëÔ¤ÖÃÓï¾ä£º $stmt = $connection->prepare("SELECT * from DB2.CATALOG WHERE CATALOGID=?"); ¡¡¡¡Ê¹Óà PDO::ATTR_CURSOR ÊôÐÔ½«ÓαêÉèÖÃΪ¿É¹ö¶¯Óα꣺ $stmt ->setAttribute(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL); ¡¡¡¡Ê¹Óà bindParam() ·½·¨°ó¶¨ CatalogId ²ÎÊý£º $stmt->bindParam(1, $catalogId); ¡¡¡¡Óà execute ( [array input_parameters] ) º¯ÊýÖ´ÐÐÔ¤ÖÃÓï¾äÖÐµÄ SQL ²éѯ£º $stmt->execute(); ¡¡¡¡Ê¹Óà fetch ( [int fetch_style [, int cursor_orientation [, int cursor_offset]]] ) º¯Êý»ñÈ¡½á¹û¼¯ÖеÄÐУº $row = $stmt->fetch(); ¡¡¡¡Èç¹û±»ÇëÇóµÄÐдæÔÚ£¬Ôò fetch() º¯Êý·µ»Ø TRUE£¬Èç¹û±»ÇëÇóµÄÐв»´æÔÚ£¬Ôò·µ»Ø FALSE¡£Èç¹û fetch() ·µ»Ø FALSE£¬Ôò½á¹û¼¯Îª¿Õ£¬±íÃ÷Êý¾Ý¿â±íÖл¹Ã»ÓÐΪ catalog id Öµ¶¨ÒåÒ»¸ö Catalog ±íÐС£Òò´Ë£¬±íµ¥ÖÐÌí¼ÓµÄ Catalog Id ×Ö¶ÎÖµÊÇÓÐЧµÄ¡£½ÓÏÂÀ´£¬Éú³ÉÒ»¸ö·¢Ë͵½¿Í»§»úÓ¦ÓóÌÐòµÄÏìÓ¦¡£Ò»¸öÏìÓ¦°üº¬Ò»¸ö»ò¶à¸öÃüÁîÏûÏ¢¡£±í 1 ÌÖÂÛÁËһЩ³£ÓõÄÃüÁîÏûÏ¢£º ¡¡¡¡±í 1. xajaxResponse ÃüÁîÏûÏ¢ ÃüÁîÏûÏ¢ ÃèÊö
$objResponse->addAssign("validationMessage","innerHTML","Catalog Id is Valid"); ¡¡¡¡Èç¹û fetch() º¯Êý·µ»Ø TRUE£¬Ôò Catalog ±íÖÐÒѾ¶¨ÒåÁËÕâ¸ö catalog id Öµ¡£ Òò´Ë£¬ÊäÈë±íµ¥ÖÐÌí¼ÓµÄ Catalog Id ÖµÊÇÎÞЧµÄ¡£Èç¹û fetch() ·½·¨·µ»ØÒ»ÐУ¬Ôò½« validationMessage div µÄ innerHTML ÉèÖÃΪ ¡°Catalog Id is not Valid¡±£º $objResponse->addAssign("validationMessage","innerHTML","Catalog Id is not Valid"); ¡¡¡¡½ÓÏÂÀ´£¬´Ó½á¹û¼¯ÐÐÖÐȡֵ£¬ÉèÖÃÊäÈë±íµ¥×Ö¶ÎÖеÄÖµ¡£fetch() º¯Êý½«½á¹û¼¯Ö¸ÕëÖ¸ÏòÏÂÒ»ÐС£ ¡¡¡¡Óà $row[mixed column] º¯Êý´Ó½á¹û¼¯ÐÐÖлñÈ¡×Ö¶ÎÖµ¡£column ²ÎÊý¿ÉÒÔÖ¸¶¨ÎªÁÐË÷Òý£¨´Ó 0 ¿ªÊ¼¼ÆÊý£©»òÁÐÃû¡£ÀýÈ磬journal ÁÐÖµ¿ÉÒÔÓÃÒÔÏÂÇåµ¥ÖÐµÄ PHP ´úÂë»ñµÃ£º $journal=$row["JOURNAL"]; ¡¡¡¡Óà addAssign ·½·¨ÉèÖÃÊäÈë±íµ¥×Ö¶ÎÔªËØµÄ value ÊôÐÔ¡£ÀýÈ磬ÏñÏÂÃæÕâÑùÉèÖà journal ÔªËØµÄ value ÊôÐÔ£º $objResponse->addAssign("journal","value",$journal); ¡¡¡¡´ËÍ⣬½ûÓà submit °´Å¥£º $objResponse->addAssign("submitForm","disabled",true); ¡¡¡¡´Ó validateCatalogId º¯ÊýÒÔ XML ×Ö·û´®µÄÐÎʽ·µ»Ø $objResponse ¶ÔÏó£º return $objResponse->getXML(); ¡¡¡¡XML ÏìÓ¦±»·¢ËÍÖÁ xajax ´¦Àí³ÌÐò£¬ºóÕß½« XML ÏìÓ¦·¢ËÍÖÁ xajax µÄ JavaScript ÏûÏ¢±Ã¡£ÏûÏ¢±Ã½âÎö XML Ö¸Á²¢ÉèÖÃÊäÈëÒ³ÃæÖеÄÔªËØ¡£Òò´Ë£¬ÔÚ $xmlResponse ¶ÔÏóÖÐÓà addAssign ·½·¨Ö¸¶¨µÄÊý¾Ý±»ÉèÖõ½ÊäÈë±íµ¥ÖС£ ¡¡¡¡updateCatalog($formValues) º¯ÊýÓÃÓÚ¸ù¾ÝÊäÈë±íµ¥¸üÐÂÊý¾Ý¿â±í Catalog¡£Èç¹û Catalog Id ×Ö¶ÎÖµÓÐЧ£¬ÔòΪ ±íµ¥µÄÆäËû×Ö¶ÎÌí¼ÓÖµ£¬ÒÔ´´½¨Ò»¸öеÄÀà±ðÌõÄ¿¡£µ¥»÷ Create Catalog °´Å¥Ìá½»±íµ¥¡£onsubmit ʼþ´¦Àí³ÌÐòµ÷Óðü×°Æ÷º¯Êý xajax_updateCatalog£¬ºóÕß·¢ËÍÒ»¸ö XMLHttpRequest µ½·þÎñÆ÷£º onsubmit="xajax_updateCatalog(xajax.getFormValues("validationForm"));" ¡¡¡¡xajax ¶ÔÏó½ÓÊÕ XMLHttpRequest£¬²¢µ÷ÓÃÏàÓ¦µÄ PHP º¯Êý updateCatalog($formValues)¡£ÔÚ updateCatalog º¯ÊýÖУ¬»ñÈ¡±íµ¥×Ö¶ÎÖµ£¬²¢´´½¨Ò»Ìõ SQL Óï¾ä£¬ÒԱ㽫һÐÐÌí¼Óµ½Êý¾Ý¿â±í Catalog ÖС£»ñµÃÓëÊý¾Ý¿âµÄÁ¬½Ó£¬²¢ÔËÐÐ SQL Óï¾ä¡£Çåµ¥ 2 ÖÐÁгöÁË input.php ½Å±¾£º ¡¡¡¡Çåµ¥ 2. input.php <?php require("./xajax/xajax_0.2.4/xajax.inc.php"); ¡¡¡¡½ÓÏÂÀ´£¬ÔÚ Apache Web ·þÎñÆ÷ÖÐÔËÐÐ input.php ½Å±¾¡£½« input.php ¸´ÖƵ½ C:Apache2Apache2htdocs Ŀ¼ÖС£Ê¹Óà URL http://localhost/input.php ÔËÐиà PHP ½Å±¾¡£Õâʱ½«ÏÔʾÊäÈë±íµ¥£¬Èçͼ 1 Ëùʾ
¡¡¡¡¿ªÊ¼Îª Catalog Id ×Ö¶ÎÌí¼ÓÒ»¸öÖµ¡£ÕâʱÏÔʾһÌõÏûÏ¢£¬ÑéÖ¤ Catalog Id ×Ö¶ÎÖµÊÇ·ñÓÐЧ£¬Èçͼ 2 Ëùʾ£º ¡¡¡¡Í¼ 2. ÑéÖ¤ÊäÈë×Ö¶Î
¡¡¡¡Ò»¸ö XMLHttpRequest HTTP ÇëÇó±»·¢Ë͵½·þÎñÆ÷£¬ÆäÖаüÀ¨¶ÔÊäÈë×ֶεÄËùÓÐÐ޸ġ£ ¡¡¡¡Í¼ 3. Ìí¼ÓÓÐЧµÄÊäÈë×Ö¶ÎÖµ
¡¡¡¡Èç¹ûÊäÈëµÄÖµÔÚ Catalog ÖÐÒѾ±»¶¨Ò壬ÔòÏÔʾһÌõÏûÏ¢ ¡°Catalog Id is not Valid¡±£¬Èçͼ 4 Ëùʾ¡£ÀýÈ磬Ìí¼Ó ¡°catalog1¡± µ½ Catalog Id ×ֶΡ£ÓÉÓÚ ¡°catalog1¡± ÒѾ±»¶¨Ò壬Òò´ËÏÔʾÏûÏ¢ ¡°Catalog Id is not Valid¡±¡£ ¡¡¡¡Í¼ 4. Ìí¼ÓÎÞЧµÄÊäÈë×Ö¶ÎÖµ
¡¡¡¡Ö¸¶¨Ò»¸öÓÐЧµÄ Catalog ID£¬²¢Îª±íµ¥µÄÆäËû×Ö¶ÎÌí¼ÓÖµÖ®ºó£¬¾Í¿ÉÒÔ´´½¨Ò»¸öеÄÀà±ðÌõÄ¿¡£µ¥»÷ Create Catalog °´Å¥´´½¨Ò»¸öÀà±ðÌõÄ¿£¬Èçͼ 5 Ëùʾ£º ¡¡¡¡Í¼ 5. ´´½¨Àà±ðÌõÄ¿
¡¡¡¡Èç¹ûÊäÈëµÄ Catalog Id ×Ö¶ÎÖµÖ®Ç°Ôø±»ÓÃÓÚ´´½¨Àà±ðÌõÄ¿£¬ÀýÈçÕâ¸öÀý×ÓÖÐµÄ ¡°catalog3¡±£¬ÔòÏÔʾÏûÏ¢ ¡°Catalog Id is not Valid¡±£¬Èçͼ 6 Ëùʾ£º ¡¡¡¡Í¼ 6. Ìí¼ÓÒѾÓÃÓÚ´´½¨Àà±ðÌõÄ¿µÄÒ»¸ö CatalogId
¡¡¡¡½áÊøÓï ¡¡¡¡±¾ÎÄÑÝʾÁËÈçºÎ½« Ajax ÌṩµÄÒì²½¿Í»§»ú-·þÎñÆ÷ XMLHttpRequest ÇëÇóÓë PHP ½Å±¾Ïà½áºÏ£¬´Ó¶ø¿ª·¢¶¯Ì¬ Web Ó¦ÓóÌÐò¡£Ê¹ÓÃÕâЩʾÀý¿ª·¢Äú×Ô¼ºµÄ·ÃÎÊ DB2 Êý¾ÝµÄ¶¯Ì¬ Web Ó¦ÓóÌÐò ±¾ÎÄ×÷Õß:δ֪ Ô´´úÂëÍø¹©¸å. |






