Solved

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

Posted on 2008-10-28
10
854 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
  • 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
 

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
How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

 
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

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

This article discusses the difference between strict equality operator and equality operator in JavaScript. The Need: Because JavaScript performs an implicit type conversion when performing comparisons, we have to take this into account when wri…
These days socially coordinated efforts have turned into a critical requirement for enterprises.
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 how to look for a specific file type in a local or remote server directory using PHP.

757 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now