www.webdeveloper.com
Results 1 to 2 of 2

Thread: Request readystate stuck at 1 only for specific request.

Hybrid View

  1. #1
    Join Date
    Oct 2010
    Posts
    2

    Request readystate stuck at 1 only for specific request.

    I have a php page which returns a table representing a query sent to a MySQL database. So far it has worked in every case except now that I'm trying to use it to call a stored procedure, in which case the readystate is staying at 1 and never completing.

    I have logged the results of the php file both in an error log and looked at the response from the request using firebug, both of which show a correct result.

    So for my question: Why isn't this returning properly?

    Here are the relevant javascript functions:

    Code:
    function customizeType()
    {
    	$("custom-header").innerHTML = "";
    	$("custom-top").innerHTML = "";
    	$("custom-middle").innerHTML = "";
    	$("custom-bottom").innerHTML = "";
    	$("custom-footer").innerHTML = "";
    	switch(type)
    	{
    	case "Transaction":
    		loadBottom("transaction");
    		break;
    	}
    }
    
    function loadBottom(item)
    {
    	requestItem(item, showCustomBottom);
    	notify("request to load "+item+" in bottom position sent");
    }
    
    function showCustomBottom(response)
    {
    	$("custom-bottom").innerHTML = response;
    	notify("bottom loaded");
    }
    
    function requestItem(item, callback)
    {
    	switch(item)
    	{
    		case "query":
    			query = baseQuery+" "+type+" "+whereClause+" "+orderClause;
    			requestQuery(query, item, callback);
    			break;
    		case "record":
    			if(selected){
    				openID = selected.firstChild.innerHTML;
    				requestRecord(type, openID, callback);
    			}else{
    				callback("");
    			}
    			break;
    		case "newRecord":
    			requestNewRecord(type, callback);
    			break;
    		case "transaction":
    			query = "call GetStats()";
    			requestQuery(query, item, callback);
    			notify("request for query: '"+query+"' sent");
    			//notify("callback is "+callback);
    			break;
    	}
    }
    
    function requestQuery(query, name, callback)
    {
    	if (window.XMLHttpRequest){
    		request = new XMLHttpRequest();
    	}else{	// For IE 5 and 6 compatibility
    		request = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	request.open("POST","query.php");
    	
    	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    	
    	request.onreadystatechange=function()
    	{
    		notify("query ready state is "+request.readyState);
    		if(request.readyState==4 && request.status==200){
    			callback(request.responseText);
    		}
    	};
    	
    	request.send("query="+query+"&name="+name);
    }
    Note that the $() function simply returns an element from the page and the notify method is printing debug information to a div.

    When the page is loaded, this is the final result of the notify statements:
    query ready state is 1
    query ready state is 2
    query ready state is 3
    query ready state is 4
    query ready state is 1
    request for query: 'call GetStats()' sent
    request to load transaction in bottom position sent
    query ready state is 1
    query ready state is 1
    query ready state is 1

    Also, here is the query.php file:
    PHP Code:
    <?php
        $debug 
    true;
        
    $fullDoc "";

        
    set_error_handler("notify");

        
    $db = new mysqli("localhost""Organizer""Organizer""organizer");
        
    /* check connection */
        
    if (mysqli_connect_errno()) {
            
    notify(0mysqli_connect_error(), "query.php"7);
            exit();
        }
        
        if(!(
    $result $db->query($_POST["query"]))){
            
    notify(0$db->error"query.php"12);
            exit();
        }
        if(
    $debug){
            
    logMessage("Query succeeded: ".$_POST["query"]);
            
    logMessage("Result set has ".$result->field_count." fields");
        }
        
        
    $fullDoc .= "<table id = '".$_POST["name"]."' class = 'queryTable'>";
        
    $fullDoc .= "<tr id = 'headers' class = 'queryHeaderRow'>";
        
        
    $x 0;
        while (
    $x $result->field_count)
        {
            
    $meta $result->fetch_field_direct($x);
            
    $fullDoc .= "<td id = 'header-".$x."' class = 'queryHeader'>".$meta->name."</td>";
            
    $x++;
        }
        
    $fullDoc .= "</tr>";
        
    $r 0;
        while(
    $row $result->fetch_array())
        {
            
    logMessage("-Processing row ".$r);
            
    $fullDoc .= "<tr id = 'row-".$r."' class = 'queryResultRow'>";
            
    $x 0;
            while (
    $x $result->field_count)
            {
                
    $fullDoc .= "<td id = '".$r.",".$x."' class = 'queryResult'>".$row[$x]."</td>";
                
    $x++;
            }
            
    $fullDoc .= "</tr>";
            
    $r++;
        }
        
    $fullDoc .= "</table>";
        
        
    $db->close();
        
        if(
    $debug){
            
    logMessage($fullDoc);
        }
        echo 
    $fullDoc;
        
        
        function 
    notify($errno$errstr$errfile$errline)
        {
            
    $message "Error Occurred in ".$errfile." at line ".$errline.": ".$errstr;
            echo 
    $message;
            
    logMessage($message);
        }
        
        function 
    logMessage($message)
        {
            
    $logDir "C:\\users\\Doug\\Desktop\\Organizer.log";
            
    error_log($message."\r\n"3$logDir);
        }
    ?>
    After the page loads, the error log shows correct results for all queries.


    I have spent a couple days trying to figure this one out so far, so any help would be appreciated.

  2. #2
    Join Date
    Oct 2010
    Posts
    2
    Well, I've basically completely rewritten this project in another language, so I'm not really in any kind of an urgent need for an answer anymore. Still, if anyone ever figures this one out, I would like to know what was going on.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles