I know you can't directly use PHP variables inside javascript code, but is there a way around it? I need to use these parameter's in javascript:

username: '<?php echo $user_id;?>.example.co.uk',
password: 'example',

Instead of showing the $user_id variable, it outputs: "Resource id #4.example.co.uk"

I'm quite new to javascript so I'm finding it pretty tricky.

Thanks for any help

Edit: I am taking the $user_id variable from the URL like so:

$user_id = mysql_real_escape_string($_GET["user_id"]);

so shouldn't it just have the set value from the URL?

link|improve this question

Where $user_id; comes from? looks like result resource – Shakti Singh May 9 '11 at 10:29
What you have looks okay - from the JS end. From the PHP end, you're trying to echo something; you need to be echoing a string (else you'll get this). – Piskvor May 9 '11 at 10:31
You can use PHP variables "inside" Javascript just fine, when your Javascript is generated by PHP. – Lightness Races in Orbit May 9 '11 at 10:32
feedback

5 Answers

up vote 0 down vote accepted

Resource id #4 means u have just not complete the mysql query

mysql_query returns Resource id

u have to fetch the data using while ($row=mysql_fetch_array()) and then use

written here

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

UPDATE

don't use mysql_real_escape string for GET data..instead use (int)$_GET['id']

see here

If no connection is found or established, an E_WARNING level error is generated

link|improve this answer
Hi diEcho, thanks for your reply. I am taking the $user_id variable like so: $user_id = mysql_real_escape_string($_GET["user_id"]); so I'm not sure how I would use the while... code. Could you show me please? Thanks – Daniel H May 9 '11 at 10:32
mysql_query returns Resource id #4. #4 is not true in all the cases – Shakti Singh May 9 '11 at 10:34
@shakti singh i know – diEcho May 9 '11 at 10:35
I have removed the real_escape part so now I have $user_id = $_GET["user_id"]; but I'm not sure what to put in the (int) section. After just removing the real_escape code the output is still the same – Daniel H May 9 '11 at 10:44
u are retrieving data from database using that user_id...right?? so then u simple mysql_query('your query'); and then fetch data using`mysql_fetch_array()` and then do whatever u want...debug one by one – diEcho May 9 '11 at 11:00
show 6 more comments
feedback

You can assign that php value in any html object then you use the object value in js page

for example

PHP:

$phpvalue = $_GET["sid"];

HTML:

<input type="text" value="<?php echo $phpvalue ;?>" id="txtsamp" />

JS:

var phpval = document.getElementById('txtsamp').value;
link|improve this answer
feedback

I'm a little rusty on PHP, but this may work:

<? //start HTML/Javascript code... 
    echo'var variable = ' . $user_id . '.example.co.uk';
    //finish HTML/Javascript here..
?>
link|improve this answer
feedback

If you have selected only one column (and expect 1 row), you can use:

$user_id = mysql_result($user_id, 0);

which would fetch the 1st column of the 1st row of the result set $user_id.

But for clarity's sake you should rename the variable $user_id, because it's not an ID but a resource (so call it $userQuery or something =)).

link|improve this answer
feedback

You can't use the result of a mysql_query() directly. Instead, you have to use mysql_result() or something similar (depending on your SQL query).

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.