Jump to content

Pass Variable from php TO javascript


cfgcjm

Recommended Posts

ok, this is my predicament. I need to grab a the variable '$user[$j][2]' from a php script and insert it into javascript (or maybe another php document...i think). What has to happen is that when the variable is returned it will put it's value in the text field "un". Below is my current code...In the page change.php when a user changes the value of the combobox (name) it runs the script alteration.php which verifies if a user is a registered user or unregistered user and returns that value via echo to the div tag "checked" on the page. At the same time as the echo value is returned is when i need to pass the '$user[$j][2]' variable...somehow...to the change.php page in the 'un' text field. I hope that makes sense, here is the code of the two files:

 

change.php

<?php
$session = mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("xxxx");
$query = "select * from users";

$result = mysql_query($query);
if ( !$result )
{
echo ( "<P>Error doing a select: " . mysql_error() . "</P>" );
}
else
{
// succesful read - how many records ?

$rr=mysql_num_rows($result); //this is calculating the number of rows read from database and puts it into variable rr

// loop over rows, counts the total number and prints them
$user = array(array()); // define array students
for ($i=0; $i<$rr; $i++) {
    $nextresult = mysql_fetch_array($result);
$fname = $nextresult['first_name'];
$lname = $nextresult['last_name'];
$journal = $nextresult['client'];
$un = $nextresult['username'];
$username="$lname, $fname";
$user[$i] [0] = $username;
$user[$i] [1] = $journal;
$user[$i] [2] = $un;
} 
}
mysql_close($session);
sort($user);
?>
<html>
<head>
<script language="javascript" type="text/javascript">
function research() {
var url = "alteration.php?param=";
var name = document.getElementById("name").value;
http.open("GET", url + escape(name), true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

function handleHttpResponse() {
if (http.readyState == 4) {
results = http.responseText;
/* Again, we're assuming your username input ID is "username" */
var name = document.getElementById("name").value;
/* If the username is available, Print this message: */
document.getElementById('checked').innerHTML = results;
}
}
function getHTTPObject() {
var xmlhttp;
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject();


</script>
</head>
<body>
<form action="amend.php" method="post" style="width: 600px">
<select name="name" id="name" onChange="research();">
<option></option>
<?php
for ($j=0; $j<$i; $j++) {
echo "<option>{$user[$j][0]}</option>";
}
?>
</select><input name="un" id="un" value="" type="text"><div name="checked" id="checked">
</div>

<fieldset name="clientgroup" style="width: 105px">
Yes<input name="Yes" type="radio" id="yes"  value="1">
No<input name="Yes" type="radio" id="yes" value="0">
</fieldset>

<input name="Submit1" type="submit" value="submit"></form> 
</body>
</html>

 

alteration.php

<?php
$host   = 'localhost'; // your host name
$dbuser = 'xxx'; // your database username
$dbpass = 'xxx'; // your database user password
$dbname = 'xxx'; // your database name
$query = "select * from users";

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');
mysql_select_db($dbname);

$result = mysql_query($query);
if ( !$result )
{
echo ( "<P>Error doing a select: " . mysql_error() . "</P>" );
}
else
{
// succesful read - how many records ?
$rr=mysql_num_rows($result); //this is calculating the number of rows read from database and puts it into variable rr
// loop over rows, counts the total number and prints them
$user = array(array()); // define array students
for ($i=0; $i<$rr; $i++) {
    $nextresult = mysql_fetch_array($result);
$fname = $nextresult['first_name'];
$lname = $nextresult['last_name'];
$journal = $nextresult['client'];
$un = $nextresult['username'];
$username="$lname, $fname";
$user[$i] [0] = $username;
$user[$i] [1] = $journal;
$user[$i] [2] = $un;
} 
$name = addslashes($_GET['param']);
for ($j=0; $j<$i; $j++) 
{
	if($name == $user[$j][0]) 
	{ $client=$user[$j][1];
 	  if($client==1)
 	  	{echo "Registered Client";
		 echo $user[$j][2];}
 	  if($client==0)
 	  	{echo "Unregistered Client";
		 echo $user[$j][2];}

	}

}
}
mysql_close($conn);
?>

Link to comment
Share on other sites

didn't work...change.php doesn't have access to the variable $user[$j][2] from alteration.php

 

I did this:

function handleHttpResponse() {
if (http.readyState == 4) {
results = http.responseText;
un='<?echo $user[$j][2]?>';
alert(un);
/* Again, we're assuming your username input ID is "username" */
var name = document.getElementById("name").value;
/* If the username is available, Print this message: */
document.getElementById('checked').innerHTML = results;
}
}

 

Alert box was blank

Link to comment
Share on other sites

he's using ajax to call the php.

 

put what I wrote in the output of alteration.

 

if that doesn't work.

 

make add the following to the output of alteration.

 

echo '<form id="rs" style="display:none;">';

echo "<input type=hidden name=fun value='$user[$j][2]'>";

echo '</form>';

 

then in javascript

un=document.all.rs.fun.value;

 

 

Link to comment
Share on other sites

I'm very confused by what you want me to do...this is not valid php...you can't put a script inside of php with another php inside of that

 

	for ($j=0; $j<$i; $j++) 
{
	if($name == $user[$j][0]) 
	{ $client=$user[$j][1];
 	  if($client==1)
 	  	{echo "Registered Client";
		<script>
		un='<? echo $user[$j][2]?>';
		</script>
            if($client==0)
 	  	{echo "Unregistered Client";
		<script>
		un='<? echo $user[$j][2]?>';
		</script>		}

}

 

Link to comment
Share on other sites

I'm trying to do this session variable stuff but now my change.php page is getting a

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/digiconm/public_html/Homeplate/portal/change.php:1) in /home/digiconm/public_html/Homeplate/portal/change.php on line 2

 

This is the current code there are NO spaces before <?php or session_start():

<?php
session_start();
$session = mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx");
$query = "select * from users";

$result = mysql_query($query);
if ( !$result )
{
echo ( "<P>Error doing a select: " . mysql_error() . "</P>" );
}
else
{
// succesful read - how many records ?

$rr=mysql_num_rows($result); //this is calculating the number of rows read from database and puts it into variable rr

// loop over rows, counts the total number and prints them
$user = array(array()); // define array students
for ($i=0; $i<$rr; $i++) {
    $nextresult = mysql_fetch_array($result);
$fname = $nextresult['first_name'];
$lname = $nextresult['last_name'];
$journal = $nextresult['client'];
$un = $nextresult['username'];
$username="$lname, $fname";
$user[$i] [0] = $username;
$user[$i] [1] = $journal;
$user[$i] [2] = $un;
} 
}

mysql_close($session);
sort($user);
?>
<html>
<head>
<script language="javascript" type="text/javascript">
function research() {
var url = "alteration.php?param=";
var name = document.getElementById("name").value;
http.open("GET", url + escape(name), true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

function handleHttpResponse() {
if (http.readyState == 4) {
results = http.responseText;
un='<?php $_SESSION['unc'];?>';
alert(un);
/* Again, we're assuming your username input ID is "username" */
var name = document.getElementById("name").value;
/* If the username is available, Print this message: */
document.getElementById('checked').innerHTML = results;
}
}
function getHTTPObject() {
var xmlhttp;
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject();


</script>
</head>
<body>
<form action="amend.php" method="post" style="width: 600px">
<select name="name" id="name" onChange="research();">
<option></option>
<?php
for ($j=0; $j<$i; $j++) {
echo "<option>{$user[$j][0]}</option>";
}
?>
</select><input name="un" id="un" value="" type="text"><div name="checked" id="checked">
</div>

<fieldset name="clientgroup" style="width: 105px">
Yes<input name="Yes" type="radio" id="yes"  value="1">
No<input name="Yes" type="radio" id="yes" value="0">
</fieldset>

<input name="Submit1" type="submit" value="submit"></form> 
</body>
</html>

Link to comment
Share on other sites

I'm very confused by what you want me to do...this is not valid php...you can't put a script inside of php with another php inside of that

 

	for ($j=0; $j<$i; $j++) 
{
	if($name == $user[$j][0]) 
	{ $client=$user[$j][1];
 	  if($client==1)
 	  	{echo "Registered Client";
		echo"<script>\n";
		echo"un='$user[$j][2]';\n"
		echo"</script>\n";}
            if($client==0)
 	  	{echo "Unregistered Client";
		echo"<script>\n";
		echo"un='$user[$j][2]';\n"
		echo"</script>\n";}

}

 

Link to comment
Share on other sites

I did this:

	for ($j=0; $j<$i; $j++) 
{
	if($name == $user[$j][0]) 
	{ $client=$user[$j][1];
 	  if($client==1)
 	  	{echo "Registered Client";
		echo"<script>\n";
		echo"un='$user[$j][2]';\n";
		echo"</script>\n";
		echo "<input type=text name=fun value='$user[$j][2]'>";
		}
            if($client==0)
 	  	{echo "Unregistered Client";
		echo"<script>\n";
		echo"un='$user[$j][2]';\n";
		echo"</script>\n";
		echo "<input type=text name=fun value='$user[$j][2]'>";
		}

	}

 

1. i dont want it in a new form

2. i made them visible so i could see the result

            Problem: the Text Box displays "Array[2]"

 

 

I'm not sure why

Link to comment
Share on other sites

I shortened it up to this and it's working so far:

	for ($j=0; $j<$i; $j++) 
{
	if($name == $user[$j][0]) 
	{ $client=$user[$j][1];
	  $un=$user[$j][2];
 	  if($client==1)
 	  	{echo "Registered Client";
		 echo "<input type='hidden' name='un' id='un' value='$un'>";
		}
            if($client==0)
 	  	{echo "Unregistered Client";
		 echo "<input type='hidden' name='un' id='un'  value='$un'>";
		}

	}
}

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.