Solved

I'm recieving "missing ) after argument list" using the following code

Posted on 2008-10-28
10
867 Views
Last Modified: 2013-12-13
Why do I get "missing ) after argument list"
I'm using a php script to poputlate the href attribute.
what am I doing wrong?

thanks!
<-PHP script cut ->
echo "<a id='".$cat['projNum']."' class='detaillink' href='javascript:doAJAX(projDetails.php,".$cat['projNum'].",detailUpdate,get,0);'   >".$cat['projNum']." ".$cat['Name']."</a>";
 
<- Results in -> 
<a id='0005024.00' class='detaillink' href='javascript:doAJAX(proDetails.php,0005024.00,detailsUpdate,get,0);' >some project name</a>
 
javascript complains:
ERROR: missing ) after argument
doAJAX(projDetails.php,0005024.00,detailsUpdate,get,0);
error-------------------------^

Open in new window

0
Comment
Question by:shootinstr8
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 12

Expert Comment

by:adrian_brooks
ID: 22824894
javascript complains:
ERROR: missing ) after argument
doAJAX(projDetails.php,0005024.00,detailsUpdate,get,0);
error-------------------------^
                                          ^-----because perhaps this should be a string, like this '0005024.00' instead of a float, which it's zeros would have also been truncated as there are no leading zeros in real numbers.
0
 

Author Comment

by:shootinstr8
ID: 22824981
Thanks adrian,
I've tried both. When I put the quotes in I get
Error: Syntax error
doAJAX(projDetails.php,
error----------------------^

It trucates it at the single quote.
0
 
LVL 12

Expert Comment

by:adrian_brooks
ID: 22825052
Try wrapping the projDetails.php in single quotes also. Because my guess is that the doAJAX function is expecting the string of what file to call for the RPC functionality.

So, try changing the projDetails.php to 'projDetails.php'.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:shootinstr8
ID: 22825087
Thanks again adrian,
 When I put the quotes in for the first param I get
Error: Syntax error
doAJAX(
error-----^

It trucates it at the single quote
0
 
LVL 12

Expert Comment

by:adrian_brooks
ID: 22825141
OH!!!
in your HTML...chance all your single quotes to double quotes...that's your problem. :P

Your single quotes are confusing the line terminations...hehehe
0
 
LVL 15

Expert Comment

by:MMDeveloper
ID: 22825157
echo "<a id=\"".$cat['projNum']."\" class=\"detaillink\" href=\"javascript:doAJAX('projDetails.php','".$cat['projNum']."','detailUpdate','get',0);\"   >".$cat['projNum']." ".$cat['Name']."</a>";
0
 
LVL 12

Assisted Solution

by:adrian_brooks
adrian_brooks earned 200 total points
ID: 22825184
In PHP...you can escape double quotes in a string by preceeding the double quote with a backslash.

for instance, in the example below, it uses escaped double quotes.
echo "<a id=\"".$cat['projNum']."\" class=\"detaillink\" href=\"javascript:doAJAX(projDetails.php,".$cat['projNum'].",detailUpdate,get,0);\"   >".$cat['projNum']." ".$cat['Name']."</a>";

Open in new window

0
 
LVL 82

Accepted Solution

by:
hielo earned 300 total points
ID: 22825265
copy and paste this:
echo "<a id='{$cat['projNum']}' class='detaillink' href='javascript:doAJAX(\"projDetails.php\",\"{$cat['projNum']}\",\"detailUpdate\",\"get\",0);'   >{$cat['projNum']} {$cat['Name']}</a>";

Open in new window

0
 

Author Closing Comment

by:shootinstr8
ID: 31510883
Thanks ALL! I new to Javascript/php and i couldn't have figured this out by myself! I'm awarding 200 points to adrian for helping get on track and for spending the time to help me.  However I'm awarding hielo 300 points because his was the final solution I ended up using.  hielo, could you point me where I can learn about the syntax you used? I've never seen the braces in place of escaping quotes before, Or maybe just a quick explanation?
0
 
LVL 82

Expert Comment

by:hielo
ID: 22825601
>> I've never seen the braces in place of escaping quotes before
In php if you have:
$greeting = "hello";

you can do this:
echo $greeting;

OR this:
echo "$greeting";

OR this:
echo "{$greeting}";

Notice that beginning and ending characters are double quotes, not apostrophes.

I used it so that is easier to "maintain", but NOT really necessary. The real "solution" I provided was in the javascript statement. If you notice all but one of the parameters are quoted. That was necessary actually.
0

Featured Post

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question