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?

share|improve this question
Where $user_id; comes from? looks like result resource – Positive 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

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

share|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 – Positive 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

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;
share|improve this answer

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..
?>
share|improve this answer

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 =)).

share|improve this answer

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).

share|improve this answer

Your Answer

 
or
required, but never shown
discard

By posting your answer, you agree to the privacy policy and terms of service.

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