Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #22797

Re: pass to function

From hipa <hipa@telenet.be>
Newsgroups comp.lang.javascript
Subject Re: pass to function
Date 2014-01-26 15:31 +0000
Organization A noiseless patient Spider
Message-ID <lc39pe$uuo$1@dont-email.me> (permalink)
References <lc0ugb$mqb$3@dont-email.me>

Show all headers | View raw


Hello

Thanks for the very fast reply!
 
> That is not a problem description.  Next time, show what you have tried, say 
> what you expected to happen and why, and what happened instead.  And please 
> post using your real name.

What I have tried is actually in my original post.

 
>   <input type="text" onchange="getInvoices(this)" />
 
> Given the code above, you are either calling this function the wrong way or 
> the function does not make use of the “elm” argument.  Your code is wrong 
> either way.

It's not my code actually, I'm experimenting with the CodeIgniter framework. I'm not an experienced developer, that's why I'm here :)

I've got it working like this.

<input type="text" name="client_id" id="client_id" onchange="getInvoices();" />

If I enter a numner in the input box and pres enter, the correspondent clients' invoices are shown in a table. The clients are in a db with a table clients.

Actually the javascript calls a php function (via Ajax.Request)

function retrieveInvoices()

	{

		$query = $this->invoices_model->getInvoicesAJAX ($this->input->post('status'), $this->input->post('client_id'), $this->input->post('clientcontact_id'), $this->settings_model->get_setting('days_payment_due'));

		...

Where the getInvoicesAJAX() function has some mysql queries.


>> invoiceArray = eval('(' + response.responseText + ')'); 
> 
> You might want to consider a wrapper that prefers 
> JSON.parse(response.responseText) before the comparably unsafe eval().
> 
>> $('invoiceListings').style.position = "relative"; 
>> $('invoiceListings').style.left = "0"; 
> 
>   var invoice_listings = $('invoiceListings');
>   invoice_listings.style.position = "relative"; 
>   invoice_listings.style.left = "0";
> 
> Better yet, avoid $('invoiceListings') and associated libraries in favor of 
> document.getElementById("invoiceListings") or something like that.
> 
> And finally, try replacing all of that with
> 
>   invoice_listings.style.display = ""; 
> 
>> $('invoiceListings').style.position = "absolute"; 
>>                                                         
> $('invoiceListings').style.left = "-5000px"; 
>>                                                         
> $('invoiceListings').style.visibility = "hidden"; 
> 
> Try replacing that with
> 
>   invoice_listings.style.display = "none"; 
> 
> NOTE: Elements where “display: none” are not subject to transition and 
> animation effects, while nowaways the “visibility” property can be animated.  
> But if you do not use those, using the “display” property is usually better.  
> 
> Consider viewports that are wider than 5000px, for example.  In fact, there 
> should be no good reason to move the element at all in order to hide it, if 
> you position it absolute and set its “visibility” property to “hidden”.

Thanks, I'll take a look a this. Thanks for the tips.

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

pass to function hipa <hipa@telenet.be> - 2014-01-25 18:07 +0000
  Re: pass to function Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-25 19:24 +0100
  Re: pass to function hipa <hipa@telenet.be> - 2014-01-26 15:31 +0000
    Re: pass to function Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-01-26 17:58 +0100

csiph-web