1,105,226 Community Members

using javascript variables in php or vice versa

Member Avatar
f4fjks
Newbie Poster
21 posts since Oct 2011
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

I just want to use the id for getting description I might have many rows fetched so I am going to make onclick event but till now, why it doesnot work? where am I wrong? Thank you for your interest

<?php  while( $row = mysql_fetch_array($res))  { ?>
<strong><?php echo $row["heading"]?></strong>
    <br />
<script>
    display(<?php echo $row["id"]?>);
</script>

<script>
function display(a)
{
        <?php $temp = "select description from newsfeed where id="?>+a+<? ";";
        header("location: index.php?msg = $temp ");?>
}
</script>
Member Avatar
diafol
Where are my eyes?
12,965 posts since Oct 2006
Reputation Points: 1,821 [?]
Q&As Helped to Solve: 1,847 [?]
Skill Endorsements: 92 [?]
Moderator
Featured
Sponsor
 
0
 

This is a mess - no offence. You can pass php data to js, but not the other way around unless you use ajax.

Member Avatar
Biiim
Posting Pro
504 posts since Oct 2011
Reputation Points: 85 [?]
Q&As Helped to Solve: 86 [?]
Skill Endorsements: 9 [?]
 
0
 

Heres an old ajax file i found and edited for you:

daniweb_basic_ajax_example.php

<html>
<head>
<script type='text/javascript'>
function getXMLHTTPRequest() {
   var req =  false;
   try {
      /* for Firefox */
      req = new XMLHttpRequest(); 
   } catch (err) {
      try {
         /* for some versions of IE */
         req = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (err) {
         try {
            /* for some other versions of IE */
            req = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (err) {
            req = false;
         }
     }
   }

   return req;
}

function ajaxRequest(rowid){
    var url = 'daniweb_ajaxData.php';
    var vars = 'id='+rowid;
    Req = getXMLHTTPRequest();
    Req.open('POST', url, true);
    Req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    Req.onreadystatechange = function() {//Call a function when the state changes.
        if(Req.readyState == 4 && Req.status == 200) {
            document.getElementById('descriptionBox').innerHTML = Req.responseText;
            //alert(Req.responseText);
        }else{
            document.getElementById('descriptionBox').innerHTML = 'Loading...';
        }
    }
    Req.send(vars);
}
</script>
</head>
<body>
<?php  
$data = array(
            '1'=>array('heading'=>'item 1','id'=>'1','description'=>'desc 1'),
            '2'=>array('heading'=>'item 2','id'=>'2','description'=>'desc 2'),
            '3'=>array('heading'=>'item 3','id'=>'3','description'=>'desc 3'),
            '4'=>array('heading'=>'item 4','id'=>'4','description'=>'desc 4'),
            '5'=>array('heading'=>'item 5','id'=>'5','description'=>'desc 5')
        );
//while($row = mysql_fetch_array($res)){
foreach($data as $row){
    echo "<strong>{$row["heading"]}</strong>\r\n";
    echo "<a href='javascript:' onclick='ajaxRequest({$row['id']});'>open descripton</a>\r\n";
    echo "<br />\r\n";
}
?>
<div id='descriptionBox'></div>
</body>
</html>

and a second page for ajax to get the data with:

daniweb_ajaxData.php

<?php

if(ISSET($_POST['id']) && (ctype_digit($_POST['id']) || is_int($_POST['id']))){
    //mysql_connect(...);
    //$query = "SELECT description FROM tablename WHERE id = {$_POST['id']}";
    //$result = mysql_query($query);
    //$data = mysql_fetch_assoc($result);
    //echo $data['description'];

    $data = array(
            '1'=>array('heading'=>'item 1','id'=>'1','description'=>'desc 1'),
            '2'=>array('heading'=>'item 2','id'=>'2','description'=>'desc 2'),
            '3'=>array('heading'=>'item 3','id'=>'3','description'=>'desc 3'),
            '4'=>array('heading'=>'item 4','id'=>'4','description'=>'desc 4'),
            '5'=>array('heading'=>'item 5','id'=>'5','description'=>'desc 5')
        );
    echo $data[$_POST['id']]['description'];
}else{
    echo "ID did not pass: {$_POST['id']}";
}
?>

PHP is a server side language, php runs before the web page has loaded and generates the text to show the web browser(javascript is not running yet), so php can write and change javascript code before the page has loaded.

once the page has loaded php and its vars no longer exist, but javascript does. AJAX is javascript code that sends a request to another page for data so you can use php to get data for javascript to use without a page refresh using ajax.

Member Avatar
f4fjks
Newbie Poster
21 posts since Oct 2011
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
 
0
 

Thank You guys, specially BIIIM, :) though it took 3 days to understand your property. Thank you so much!

Member Avatar
Biiim
Posting Pro
504 posts since Oct 2011
Reputation Points: 85 [?]
Q&As Helped to Solve: 86 [?]
Skill Endorsements: 9 [?]
 
0
 

haha no problem, i hated the first steps of javascript the debugging in it is awful.

Dont forget to mark as solved

You
This article has been dead for over three months: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article