0

こんにちは、AJAX .post で php スクリプトを実行しています。スクリプトは実行されていますが、問題は .post から返された呼び出しが、スクリプトが返したデータだけでなく、wordpress ページ全体を返すことです。スクリプトを呼び出すと、ページが再度読み込まれるようです。

この ajax 呼び出しは、single-post.php 内に配置されています

$.ajax({ url: 'localhost/check/checkuser.php',
     data: {action: window.myId},
     type: 'post',
     success: function(output) {
                  alert(output);
              }
}); 

およびcheckuser.php

$userid = $_POST['action'];

//$userid = 'zivvv';

 $oMySQL = new MySQL();
 $query = "Select share FROM videotable WHERE uid = '$userid'";
 $oMySQL->ExecuteSQL($query);
 $bb = $oMySQL->iRecords;
 $aa = $oMySQL->aResult;

  if ($bb == 0){
$query = "INSERT INTO videotable VALUES ('','$userid','true')";
$oMySQL->ExecuteSQL($query);
echo 'true';
return 'true';
 }else{
$sharing = mysql_result($aa,0,"share");
echo $sharing;
return $sharing;
 }

私はPHPが初めてで、返された呼び出しを見て、「画面」上のすべてのものを返すだけなので、wordpressページがcheckuser.phpファイルでロードされると、ページ全体が送り返されます。それについて何ができますか?

10倍先の男たち

4

1 に答える 1

1

いくつかのアドバイス:

  1. データベース アクションについては、global $wpdb http://codex.wordpress.org/Class_Reference/wpdbを使用します。
  2. スクリプトはSQL インジェクションから保護されていません
  3. wordpress での ajax 呼び出しの場合、WP がhttp://codex.wordpress.org/AJAX_in_Pluginsを持っている ajax スクリプトを使用することをお勧めします
  4. (これから簡単なプラグイン)http://codex.wordpress.org/Writing_a_Plugin
    の 例を作成します。

wp-content/plugins/userchecker.php(あなたのファイル)

<?php
/*
Plugin Name: user checker
Description: A brief description of the Plugin.
Version: 0.9
*/

//your code
?>

このようにして、適切な WP の方法で独自のコードを実行およびアクティブ化できます。
WP のすべてのビルド関数とクラスが利用可能になるため、WP ファイルを含める必要はありません。

于 2012-05-14T12:08:06.950 に答える