没有人能解决吗?提供下思路呀!Xajax能不能和mysql一起使用

解决方案 »

  1.   

    我早上下载了个,是别人写的,我没来得及看,给你贴出来!Ajax检查用户名
    __________________
    Sajax2.php
    __________________
    <?php
    if (!isset($SAJAX_INCLUDED)) { /*  
     * GLOBALS AND DEFAULTS
     *
     */ 
    $sajax_debug_mode = 0;
    $sajax_export_list = array();
    $sajax_request_type = "GET";
    $sajax_remote_uri = "";

    /*
     * CODE
     *
     */ 
     
    //
    // Initialize the Sajax library.
    //
    function sajax_init() {
    }

    //
    // Helper function to return the script's own URI. 
    // 
    function sajax_get_my_uri() {
    global $REQUEST_URI;

    return $REQUEST_URI;
    }
    $sajax_remote_uri = sajax_get_my_uri();

    //
    // Helper function to return an eval()-usable representation
    // of an object in JavaScript.
    // 
    function sajax_get_js_repr($value) {
    $type = gettype($value);

    if ($type == "boolean" ||
    $type == "integer") {
    return "parseInt($value)";

    elseif ($type == "double") {
    return "parseFloat($value)";

    elseif ($type == "array" || $type == "object" ) {
    //
    // XXX Arrays with non-numeric indices are not
    // permitted according to ECMAScript, yet everyone
    // uses them.. We'll use an object.
    // 
    $s = "{ ";
    if ($type == "object") {
    $value = get_object_vars($value);

    foreach ($value as $k=>$v) {
    $esc_key = sajax_esc($k);
    if (is_numeric($k)) 
    $s .= "$k: " . sajax_get_js_repr($v) . ", ";
    else
    $s .= "\"$esc_key\": " . sajax_get_js_repr($v) . ", ";
    }
    if (count($value))
    $s = substr($s, 0, -2);
    return $s . " }";

    else {
    $esc_val = sajax_esc($value);
    $s = "'$esc_val'";
    return $s;
    }
    } function sajax_handle_client_request() {
    global $sajax_export_list;

    $mode = "";

    if (! empty($_GET["rs"])) 
    $mode = "get";

    if (!empty($_POST["rs"]))
    $mode = "post";

    if (empty($mode)) 
    return; $target = "";

    if ($mode == "get") {
    // Bust cache in the head
    header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Date in the past
    header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    // always modified
    header ("Cache-Control: no-cache, must-revalidate");  // HTTP/1.1
    header ("Pragma: no-cache");                          // HTTP/1.0
    $func_name = $_GET["rs"];
    if (! empty($_GET["rsargs"])) 
    $args = $_GET["rsargs"];
    else
    $args = array();
    }
    else {
    $func_name = $_POST["rs"];
    if (! empty($_POST["rsargs"])) 
    $args = $_POST["rsargs"];
    else
    $args = array();
    }

    if (! in_array($func_name, $sajax_export_list))
    echo "-:$func_name not callable";
    else {
    echo "+:";
    $result = call_user_func_array($func_name, $args);
    echo "var res = " . trim(sajax_get_js_repr($result)) . "; res;";
    }
    exit;
    }

    function sajax_get_common_js() {
    global $sajax_debug_mode;
    global $sajax_request_type;
    global $sajax_remote_uri;

    $t = strtoupper($sajax_request_type);
    if ($t != "" && $t != "GET" && $t != "POST") 
    return "// Invalid type: $t.. \n\n";

    ob_start();
    ?>

    // remote scripting library
    // (c) copyright 2005 modernmethod, inc
    var sajax_debug_mode = <?php echo $sajax_debug_mode ? "true" : "false"; ?>;
    var sajax_request_type = "<?php echo $t; ?>";
    var sajax_target_id = "";

    function sajax_debug(text) {
    if (sajax_debug_mode)
    alert("RSD: " + text)
    }
      function sajax_init_object() {
      sajax_debug("sajax_init_object() called..")
     
      var A;
    try {
    A=new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    A=new ActiveXObject("Microsoft.XMLHTTP");
    } catch (oc) {
    A=null;
    }
    }
    if(!A && typeof XMLHttpRequest != "undefined")
    A = new XMLHttpRequest();
    if (!A)
    sajax_debug("Could not create connection object.");
    return A;
    }
    function sajax_do_call(func_name, args) {
    var i, x, n;
    var uri;
    var post_data;
    var target_id;

    sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id);
    target_id = sajax_target_id;
    if (sajax_request_type == "") 
    sajax_request_type = "GET";

    uri = "<?php echo $sajax_remote_uri; ?>";
    if (sajax_request_type == "GET") {

    if (uri.indexOf("?") == -1) 
    uri += "?rs=" + escape(func_name);
    else
    uri += "&rs=" + escape(func_name);
    uri += "&rst=" + escape(sajax_target_id);
    uri += "&rsrnd=" + new Date().getTime();

    for (i = 0; i < args.length-1; i++) 
    uri += "&rsargs[]=" + escape(args[i]); post_data = null;

    else if (sajax_request_type == "POST") {
    post_data = "rs=" + escape(func_name);
    post_data += "&rst=" + escape(sajax_target_id);
    post_data += "&rsrnd=" + new Date().getTime();

    for (i = 0; i < args.length-1; i++) 
    post_data = post_data + "&rsargs[]=" + escape(args[i]);
    }
    else {
    alert("Illegal request type: " + sajax_request_type);
    }

    x = sajax_init_object();
    x.open(sajax_request_type, uri, true);

    if (sajax_request_type == "POST") {
    x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
    x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }

    x.onreadystatechange = function() {
    if (x.readyState != 4) 
    return; sajax_debug("received " + x.responseText);

    var status;
    var data;
    var txt = x.responseText.replace(/^\s*|\s*$/g,"");
    status = txt.charAt(0);
    data = txt.substring(2);
    if (status == "-") 
    alert("Error: " + data);
    else {
    if (target_id != "") 
    document.getElementById(target_id).innerHTML = eval(data);
    else {
    try {
    var callback;
    var extra_data = false;
    if (typeof args[args.length-1] == "object") {
    callback = args[args.length-1].callback;
    extra_data = args[args.length-1].extra_data;
    } else {
    callback = args[args.length-1];
    }
    callback(eval(data), extra_data);
    } catch (e) {
    alert(e + ": Could not eval " + data);
    }
    }
    }
    }
    sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
    x.send(post_data);
    sajax_debug(func_name + " waiting..");
    delete x;
    return true;
    }

    <?php
    $html = ob_get_contents();
    ob_end_clean();
    return $html;
    }

    function sajax_show_common_js() {
    echo sajax_get_common_js();
    }

    // javascript escape a value
    function sajax_esc($val)
    {
    $val = str_replace("\\", "\\\\", $val);
    $val = str_replace("\r", "\\r", $val);
    $val = str_replace("\n", "\\n", $val);
    return str_replace('"', '\\"', $val);
    } function sajax_get_one_stub($func_name) {
    ob_start();
    ?>

    // wrapper for <?php echo $func_name; ?>

    function x_<?php echo $func_name; ?>() {
    sajax_do_call("<?php echo $func_name; ?>",
    x_<?php echo $func_name; ?>.arguments);
    }

    <?php
    $html = ob_get_contents();
    ob_end_clean();
    return $html;
    }

    function sajax_show_one_stub($func_name) {
    echo sajax_get_one_stub($func_name);
    }

    function sajax_export() {
    global $sajax_export_list;

    $n = func_num_args();
    for ($i = 0; $i < $n; $i++) {
    $sajax_export_list[] = func_get_arg($i);
    }
    }

    $sajax_js_has_been_shown = 0;
    function sajax_get_javascript()
    {
    global $sajax_js_has_been_shown;
    global $sajax_export_list;

    $html = "";
    if (! $sajax_js_has_been_shown) {
    $html .= sajax_get_common_js();
    $sajax_js_has_been_shown = 1;
    }
    foreach ($sajax_export_list as $func) {
    $html .= sajax_get_one_stub($func);
    }
    return $html;
    }

    function sajax_show_javascript()
    {
    echo sajax_get_javascript();
    }
    $SAJAX_INCLUDED = 1;
    }
    ?>
      

  2.   

    _______________________________username-ajax.php
    _______________________________
    <?php
    // Include the Sajax library
    include "Sajax2.php";// Open conection to the database
    mysql_connect('localhost', 'username', 'password');
    mysql_select_db('database');/*
    CREATE TABLE `users` (
    `user_id` INT( 9 ) NOT NULL AUTO_INCREMENT ,
    `username` VARCHAR( 50 ) NOT NULL ,
    `password` VARCHAR( 32 ) NOT NULL ,
    PRIMARY KEY ( `user_id` ) ,
    UNIQUE (`username`)
    );INSERT INTO `users` ( `username` , `password` ) VALUES ('username', 'password');
    INSERT INTO `users` ( `username` , `password` ) VALUES ('tom', 'password');
    INSERT INTO `users` ( `username` , `password` ) VALUES ('bill', 'password');
    INSERT INTO `users` ( `username` , `password` ) VALUES ('bob', 'password');
    */// Function to check if a username exists inside the database
    function check_user_exist($username) {
    $username = mysql_escape_string($username);
    // Make a list of words to postfix on username for suggest
    $suggest = array('007', '1', 'theman', 'rocks');
    //$suggest = array();
    $sql = "SELECT `username` FROM `users` WHERE `username` = '$username'";
    $result = mysql_query($sql);
    if(mysql_num_rows($result) > 0) {
    // Username not available
    $avail[0] = 'no';
    $i = 2;
    // Loop through suggested ones checking them
    foreach($suggest AS $postfix) {
    $sql = "SELECT `username` FROM `users` WHERE `username` = '".$username.$postfix."'";
    $result = mysql_query($sql);
    if(mysql_num_rows($result) < 1) {
    $avail[$i] = $username.$postfix;
    $i ++;
    }
    }
    $avail[1] = $i - 1;
    return $avail;
    }
    // Username is available
    return array('yes');
    }sajax_init(); // Intialize Sajax
    //$sajax_debug_mode = 1; //Uncomment to put Sajax in debug mode
    sajax_export("check_user_exist"); // Register the function
    sajax_handle_client_request(); // Serve client instances
    ?><html>
    <head>
    <title>Gmail Style Check Username AJAX</title>
    <script type="text/javascript">
    <?php
    sajax_show_javascript();
    ?>
    function check_handle(result) {
    if(result[0] == 'yes') {
    document.getElementById('not_available').style.display = 'none';
    document.getElementById('available').style.display = 'block';
    }
    else {
    document.getElementById('available').style.display = 'none';
    document.getElementById('not_available').style.display = 'block';
    var str = 'Sorry that username is not available try these <br />';
    for(i = 1; i < result[1]; i++) {
    str += "<input type=\"radio\" name=\"try\" onclick=\"switch_username('"+result[i+1]+"')\"/>" + result[i+1] + "<br />";
    }
    document.getElementById('not_available').innerHTML = str;
    }
    } function check_user_exist() {
    var username = document.getElementById('username').value;
    x_check_user_exist(username, check_handle);
    } function switch_username(username) {
    document.getElementById('username').value = username;
    }
    </script> <style type="text/css">
            @import url( test.css );
    #available {
    display: none;
    color: green;
    }
    #not_available {
    display: none;
    color: red;
    }
    </style>
    </head>
    <body>
    <h2>AJAX Check Username</h2>
    <p>The following does a gmail style check on the username supplied to see if it is a unqiue username, using the AJAX method.
    <br />If not, it makes some suggestions to ones which are available. It uses a development version of Sajax.
    <br /><a href="username-ajax.phps">View Source</a> (<a href="Sajax2.phps">Sajax2.php</a>) | <a href="">Comments</a> | <a href="ajax_user.zip">Download Files</a></p> 
    <h2>Example</h2>
    Some examples of taken usernames are: <strong>tom</strong> , <strong>bill</strong>, <strong>bob</strong>, <strong>username</strong><br />
    <input type="text" name="username" id="username" size="20" value="tom">
    <input type="button" name="check" value="Check Username"
    onclick="check_user_exist(); return false;"> <div id="available">
    Username is available!
    </div> <div id="not_available">
    Sorry that username is not available.
    </div>
    </body>
    </html>
      

  3.   

    为什么输出只有一条记录!<?
    require("./xajax/xajax.inc.php");
    require("./config.php");
    function showquestion()
    {
    global $dbhost,$dbuser,$dbpasswd,$dbname,$dblink;

    $sql="select count(*) as rcnt from question";
    $result=mysql_db_query($dbname,$sql);
    $row=mysql_fetch_array($result);
    $totalnum=$row[rcnt];
    if($totalnum>1)
    {
    $sql="select * from question";
    $result=mysql_db_query($dbname,$sql);
    while($row=mysql_fetch_array($result))
    {
    $question[]=$row[question];
    list($key,$value)=each($question);
    $objResponse = new xajaxResponse();
    $objResponse->addAssign("id","innerHTML",$value);
    $objResponse->setCharEncoding("GB2312");
    }
    }
    return $objResponse;
    }$xajax= new xajax();
    $xajax->registerFunction("showquestion");
    $xajax->processRequests();
    ?>
    <html>
    <head>
    <title>xajax example</title>
    <?php $xajax->printJavascript('./xajax');?>
    </head>
    <body style="text-align:center;"><div id=id>&#160;</div><script type="text/javascript">
    xajax_showquestion(); 

    </script>
    </body>
    </html>
      

  4.   

    在百度看的,无刷新,但不是AJAX的INDEX.PHP<script language="javascript">
    function selectroom(hostelid){
            
        un = encodeURIComponent(hostelid);
    scr = document.createElement('script')
    scr.src = 'p.php?hostelid=' + un;
    document.getElementById('room').appendChild(scr);
            //alert(document.getElementById('room').innerHTML);
    }
    </script><ul>
    <li>选择酒店:&nbsp;&nbsp;&nbsp;&nbsp;<select name="hostelid" id="hostelid" onChange="selectroom(this.value)">
                                         <option value="1">adfasdfadf</option>
     <option value="1">adfasdfadf</option>
     <option value="1">adfasdfadf</option>
     <option value="1">adfasdfadf</option>
                                        </select><br><br>
    <li>选择房间:&nbsp;&nbsp;&nbsp;&nbsp;<div id="room"></div><br><br></ul>
    P.PHP<?$outstr="<select name=roomid>";
    $outstr=$outstr."</select>";
    echo "document.getElementById('room').innerHTML='".$outstr."'";
    //echo $outstr;
    ?>