0

次の ajax.js を使用する必要があります。

var xmlRequest = null;
    function ajax(url, parametersArray, callbackFunction, fcnVars) {
        if (xmlRequest != null) {
        if (xmlRequest.readyState == 2 || xmlRequest.readyState == 3) {
            xmlRequest.abort();
            xmlRequest = null;
           }
        }
        if (parametersArray == null)
            parameters = "";
        else
            parameters = formatParameters(parametersArray);
        if (window.XMLHttpRequest)
            xmlRequest = new XMLHttpRequest();
        else
            xmlRequest = new ActiveXObject("MSXML2.XMLHTTP.3.0");
            xmlRequest.open("POST", url, true);
            xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            xmlRequest.onreadystatechange = function() {
                if (xmlRequest.readyState == 4 && xmlRequest.status == 200) {
                    if (xmlRequest.responseText) {
                        callbackFunction(xmlRequest.responseText, fcnVars);
                    }
                }
            }
        xmlRequest.setRequestHeader("Content-length", parameters.length);
        xmlRequest.setRequestHeader("Connection", "close");
        xmlRequest.send(parameters);
    }

    function formatParameters(parameters) {
        var i = 0;
        var param = "";
        for (index in parameters) {
            if (i==0) {
                param += index+"="+urlencode(parameters[index]);
            } else {
                param += "&"+index+"="+urlencode(parameters[index]);
            }
            i++; 
        }
    return param;
    }

    function urlencode(clearString) {
        clearString = encodeURI(clearString);
        clearString = clearString.replace('&', '%26');
        return clearString;
    }

次のmysqlテーブルがあります。

CREATE TABLE `dictionary` (
   `word` varchar(64) NOT NULL,
   PRIMARY KEY  (`word`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1

最後に、これが私の検索ページです。

<div id = "search">
    <form id="searchform" method="post">
    Search for Word: 
    </select>
    <input type="text" id="search_term" name="search_term"  />
    <input type="submit" id="cmdSearch" value="Search"  />
</form>
<div id="search_results"></div>
</div>    

ここで、上記の ajax.js を使用して、テーブルで見つかった単語の配列を返す php 関数を作成する必要があります

結果は、ajax を使用して search_results div 内に表示する必要があります。

もちろん、JavaScript コードも必要です。

誰でも私がこれを構築し始めるのを手伝ってくれますか? 私はjqueryで同様のことをしましたが、今はこのスクリプトを使用する必要があり、他に方法がありません.

目標は、更新せずに php ページに結果を表示することです。

どんな助けでも深く感謝します

アップデート:

これが私のphpコードです:

<?php

// add encoding here
header("Content-Type: text/html; charset=iso-8859-7");

// include the database connection here
include 'config.php';
include 'openDb.php';
function findWords(){
    // sanitaze the user input
    $term = strip_tags(substr($_POST['search_term'],0, 100));
    $term = mysql_escape_string($term);

    // query the database. one fileld only, so nothing to optimize here
    $sql = "SELECT word FROM dictionary WHERE word like '%$term%'";
    $result = mysql_query($sql);

    // set the string variable
    $string = '';

    // if resulta are found then populate the string variable
    if (mysql_num_rows($result) > 0){
        while($row = mysql_fetch_object($result)){
            // display the results here in bold and add a new line or break after each     result  
            $string[] = "<b>".$row->user_name."</b><br/>\n";
        }
    } else {
        // if no results are found, inform the visitors...  
        $string[] = "No matches!";
    }
    // output the string
    return $string[];

これがJavaScriptです:

    <script type='text/javascript'>
    ajax("findWord.php", {id:search_term}, function(result,params) {
    alert("result for ID: "+params.id+"\n\n"+result);
    }, {id:search_term});
    </script>
4

1 に答える 1

0

ajaxコールバック関数にロードされたものにアクセスできる関数に依存する必要があります。

callbackFunction(xmlRequest.responseText, fcnVars);

そしてajax、それ自体をどのように呼び出すべきかを説明します:

ajax(url, parametersArray, callbackFunction, fcnVars)

{index:value, i1:v2,...}parametersArray は、実際には配列 ( ) ではなくオブジェクト ( ) である必要があります[val1, val2,...]fcnVarsコールバック関数に渡したいものを含むオブジェクトにすることができます。

これはうまくいくはずです:

ajax("add_page.php", {id:535}, function(result,params) {
    alert("result for ID: "+params.id+"\n\n"+result);
}, {id:535});
于 2012-04-19T19:22:29.797 に答える