0

Hello:

I am wondering if there are any suggestions on how to pass variable to a div in the following manner:

foreach (array_combine($playerState_array_clean_phase2, $membId_stripped_array_clean_phase2) as $playerState_array_clean_phase2 => $membId_stripped_array_clean_phase2)  
{ 
echo"
<a href=\"#_MultiDataProcessor?Pid=$membId_stripped_array_clean_phase2&Plname=$lname&Pfname=$fname\" title=\"$membId_stripped_array_clean_phase2\"><span style='font-size:1.5em'>$playerState_array_clean_phase2</span></a>";
}

I want to get those variable in a div that looks like:

    <div class="iLayer" id="MultiDataProcessor" title="Multi-Player Rating Data">
<div class="iBlock">


<?php


    $Player_id=$_GET['Pid'];
    $fname=$_GET['Pfname'];
    $lname=$_GET['Plname'];

    ?>
    <!--Other code stuff goes here-->
  </div>

I appreciate any thoughts on this!
Mossa

Edited by mbarandao

4
Contributors
14
Replies
62
Views
3 Years
Discussion Span
Last Post by iamthwee
0

I can't see the relationship between the two code blocks. In the first block is the loop missing and echo?

0

Diafol, thanks for the reply! I have corrected the missing echo ...it was an oversight during posting.

With regards to the relationship:

The loop iterates and displays different values. the values are clickable and targeted to the div. Within the div, I have a php that is to receive three values passed from the links and perform further processing and display.

I know I could easily do this on a separate page, but for the purpose of this project, it needs to be done inside the div on the same page.

0

I don't understand where this:

&Plname=$lname&Pfname=$fname

is coming from in the loop as the vars have not been initialised/set

0

&Plname=$lname&Pfname=$fname

these are defined outside the loop (before).

$fname =$_POST['fname'];
$lname = $_POST['lname'];   
0

I'm a bit lost as to what isn't working for you, but maybe...

<?php if(isset($_GET['Pid']) && isset($_GET['Pfname']) && isset($_GET['Plname'])){ ?>
<div class="iLayer" id="MultiDataProcessor" title="Multi-Player Rating Data">
<div class="iBlock">
<?php
    $Player_id=$_GET['Pid'];
    $fname=$_GET['Pfname'];
    $lname=$_GET['Plname'];
    ?>
    <!--Other code stuff goes here-->
  </div>
  </div>
<?php } ?>  
0

The question is can I pass variable through an html anchor like so: (my attempts have failed. Specifically, with the link constructed as below, on click, it is unresponsive)

<a href=\"#_MultiDataProcessor?Pid=23232&Plname=mossa&Pfname=joe\" title=\"$membId_stripped_array_clean_phase2\">value</a>

the values are received and processed in a div on the same page

vs the tradional url

<a href=\"MultiDataProcessor.php?Pid=23232&Plname=mossa&Pfname=joe\" title=\"$membId_stripped_array_clean_phase2\">value</a>

whereas here, the values are received and processed in on a separate

Edited by mbarandao: clarification

0

Hi Mossa,

If you build the link as follows ...

echo "<a class=\"playerState\" href=\"\" data-pid=\"$membId_stripped_array_clean_phase2\" data-plname=\"$lname\" data-pfname=\"$fname\" title=\"$membId_stripped_array_clean_phase2\"><span style='font-size:1.5em'>$playerState_array_clean_phase2</span></a>";

... and build the HTML as follows (or similar) ...

<div class="iBlock">
    <p>PID: <span class="pid"></span></p>
    <p>First name: <span class="pfname"></span></p>
    <p>Last name: <span class="plname"></span></p>
    <!--Other code stuff goes here-->
</div>

... then you can use jQuery to acces the data in the links and display it in the div. For example:

$("a.playerState").on('click', function(evt) {
    evt.preventDefault();
    var $this = $(this);
    var $targetDiv = $('#MultiDataProcessor .iBlock');
    var pid = $this.data('pid');
    var plname = $this.data('plname');
    var pfname = $this.data('pfname');
    $targetDiv.find('.pid').text(pid);
    $targetDiv.find('.plname').text(plname);
    $targetDiv.find('.pfname').text(pfname);
});

This may not be exactly what you want but should give you some strong clues.

Edited by Airshow

0

Airshow,

Thanks for your input and creative approach. I'll give it an attempt and report back shortly.

Mossa

0

the following:

<p>PID: <span class="pid"></span></p>
<p>First name: <span class="pfname"></span></p>
<p>Last name: <span class="plname"></span></p>

I need to get these values inside the div as php var

like so:

$Player_id="";//$_GET['Pid'];
$fname="";//$_GET['Pfname'];
$lname="";//$_GET['Plname'];

in other to perform further php processing

Edited by mbarandao

0

Mossa, "perform further php processing" implies one of three things :

  • Further page-building when the page is initially served
  • an AJAX operation performed in response to the <a ....> links being clicked
  • conventional hyperlinking in response to the <a ....> links being clicked.

Which is it?

0

Airshow,

I need those php var to perform the following:

    $Player_id=$_GET['Pid'];
    $fname=$_GET['Pfname'];
    $lname=$_GET['Plname'];

    $fullName=$lname.", ".$fname;//$_GET['phone'];
    //$result = array();        
    //echo $fullname.$Player_id;

    $dom = phpQuery::newDocumentFile("http://domainame/dir/dir2/dir3/players.asp?NSearch=$lname");        
    $match = $dom->find('td:contains("'.$Player_id.'") '); 
    $match_strip=strip_tags($match);//strip html from string
    $match_array=preg_split("/$\n?/m", $match_strip);//turn each newline in string into array of characters
    $match_array_clean_phase1 = array_map('trim', $match_array);//clean phase one
    $match_array_clean_phase2=array_filter($match_array_clean_phase1);//clean phase 2

Edited by mbarandao

0

Issue resolved! I decided to implement the conventional way of passing of var (via url to another page)... little more coding, but it is working.

I appreciate the feedback and suggestions.

Mossa

1

Mossa,

Well done. I understand the problem better now you have explained the solution!

Never mind, let's hope we have better luck next time.

Best wishes - also to Diafol (he of the Virtual Hosts).

Airshow

Votes + Comments
Long time no write Airshow :)
0

I would also avoid escaping your php quotes like that: \"
Just simply use single quote to achieve the same. Otherwise it gets real hard to read and debug.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.