Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Javascript, funciones o yo que se. (https://www.clubdelphi.com/foros/showthread.php?t=46209)

papulo 26-07-2007 13:37:16

Javascript, funciones o yo que se.
 
Tengo este código:
Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php 
include ("lib/libreria_conexiondb.php");
include (
"lib/libreria_funciones_xhtml.php");
include (
"lib/libreria_sentencias_SQL.php");
include (
"lib/libreria_funciones.php");

//Controlamos la inicialización de las variables ($user_id, $position) y damos valores por defecto en caso de no estarlo.
if (!$_POST["companyaddressid"]){
//    echo "No las pilla, Pablo";
    
$company_address_id=1;
    }
else {
//    echo "DENTROOO!!";
    
$company_address_id=$_POST["companyaddressid"];
    }
    
//echo $_POST["companyaddressid"];
//echo $company_address_id;

$company_name ibase_fetch_object(consulta_managerdb(company_name_SQL($company_address_id)));

$group_company_ids consulta_managerdb(main_company_groups_id_SQL($company_name->MAIN_COMPANY_ADDRESS_ID)); //Nos devolvera el listado de todos los IDs que comparten el mismo MAIN_ADDRESS_ID

$consulta_address consulta_managerdb(address_SQL($company_name->MAIN_COMPANY_ADDRESS_ID));

//$consulta_contact = consulta_managerdb(contact_SQL($company_address_id));  
?>

<html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Manager</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="lib/js/xmlhttp.js"></script>
<script type="text/javascript" src="lib/js/functions.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body onload="makerequest('table_company_service_product.php?company_address_id=<?php echo $company_address_id?>','contact_address'); makerequest('table_company_service_product.php?company_address_id=<?php echo $company_address_id?>','company_service_product');">
    <div align="center">
    
<!-- theform.php -->
<div style="padding: 10px;">
    <div id="messagebox"></div>
    <form method="post" action="mng_data.php">
        <input id="companyaddressid" name="companyaddressid" style="width: 150px; height: 16px;" type="hidden" value="" onkeypress="" /><br />
        <input id="yourname" style="width: 150px; height: 16px;" type="text" value="" onkeypress="autocomplete(this.value, event)" /><br />
        <input type="submit" value="Buscar..."  />
    </form>
</div>
    <div id="autocompletediv" class="autocomp"></div>
<?php
xhtml_table
($group_company_ids,$consulta_address,"$company_name->ADDRESS_COMPANY_NAME",true,true);
?>
<div id='contact_address'></div>
<div id='company_service_product'></div>

</body>
</html>

Cuya parte problemática es la siguiente:

Código PHP:

<body onload="makerequest('table_company_service_product.php?company_address_id=<?php echo $company_address_id?>','contact_address'); makerequest('table_company_service_product.php?company_address_id=<?php echo $company_address_id?>','company_service_product');">

Ya que intento llamar a la misma función declarada en
Código PHP:

<script type="text/javascript" src="lib/js/functions.js"></script> 

Que tiene el siguiente código:

Código PHP:

    function makerequest(serverPageobjID) {
        
        var 
obj document.getElementById(objID);
        
xmlhttp.open("GET"serverPage);
        
xmlhttp.onreadystatechange = function() {
            if (
xmlhttp.readyState == && xmlhttp.status == 200) {
                
obj.innerHTML xmlhttp.responseText;
            }
        }
        
xmlhttp.send(null);
    } 

Y no hay forma de llamarla dos veces.

Sin embargo, si solo llamo la función una vez de la siguiente forma:

Código PHP:

<body onload="makerequest('table_company_service_product.php?company_address_id=<?php echo $company_address_id?>','contact_address');

O uso dos funciones distintas:

Código PHP:

<body onload="makerequest('table_company_service_product.php?company_address_id=<?php echo $company_address_id?>','contact_address'; alert('solo se que no se nada');">

No se que pasa, joer, me tienen desquiciado.

Y tengo el mismo problema para ejecutar ambas funciones en una etiqueta <tr onclick=...>


¡¡¡AYUDAAAA!!!

Saludos cracks.

roman 26-07-2007 22:01:05

Hola papulo,

Apenas he visto por encima tu código, pero me llama la atención que en tu función makerequest() haces referencia a un objeto httprequest, que, supongo, creas previamente, posiblemente en xmlhttp.js

Ahora bien, hasta donde yo he visto, el objeto httprequest no es reusable; al menos yo, las veces que lo he utilizado, he debido crear uno nuevo en cada petición.

// Saludos

papulo 27-07-2007 10:40:57

Y, si no es molestia, ¿como lo resolverías de la forma mas elegante posible?.

roman 27-07-2007 21:20:37

Bueno, no sé qué tan elegante sea. Yo lo poco que he hecho con ajax, fue una clase JS con un métodos get() y post() que lanzan la petición (la clase tiene una propiedad params, con los valores que se mandan). Dichos métodos son los que internamente construyen el objeto httprequest cada vez.

En tu caso, sería hacerlo dentro de la función makerequest(); estoes, en lugar de usar un objeto global xmlhttp, lo creas ahí mismo.

// Saludos

papulo 27-07-2007 22:04:24

Valeeee. Ahora lo entiendo (o eso creo). Guardaré como en oro en paño el susodicho ost y el Lunes lo probaré.

Ya diré como me ha ido. Mil gracias.

Saludooos.


La franja horaria es GMT +2. Ahora son las 01:53:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi