2

データベースからの結果を表示する検索エンジンがあり、ユーザーが「Click Me For More Contact Info」をクリックするとポップアップ ボックスを開く公開モーダルを使用しましたが、現在、結果のどのリンクをクリックしても、同じ連絡先情報がエコーされています。これは最初の結果からの情報です。

ユーザーが「Click Me For More Contact Info」をクリックすると、その結果のポップアップ ボックスに正しい連絡先情報が表示されるようにする方法を示す正しい方向に私を向けることができますか?

助けてくれてありがとう、どうもありがとう!!

echo "<div id='myModal' class='reveal-modal'>";
echo "<h1>Modal Title</h1>";
echo "<p>Contact:" . $row['contact'] . "</p>";
echo "<a class='close-reveal-modal'>&#215;</a>";
echo "</div>";

echo "<a href='#' data-reveal-id='myModal'>Click Me For More Contact Info</a>";

編集: 検索結果は正常に表示されます。結果がポップアップ div にエコーされたときだけです。これは私のコードの残りの部分です:

include('config.inc');



    // Check and set username
$username = (isset($_SESSION['username']) ? $_SESSION['username'] : 'guest');

// Check and set category
$category = (!empty($_GET['category']) ? $_GET['category'] : null);

// Check and set search
if(!empty($_GET['search'])){
$search = $_GET['search'];
}else{
$search = null;
}

// Check that $_GET['price'] is ASC if not set to DESC
// as static values its ok to directly put in the query 
if(isset($_GET['price']) && $_GET['price'] == 'ASC'){
$price = 'ASC';
}else{
$price = 'DESC';
}

if ($search !== null){

$sql = "SELECT * FROM people WHERE MATCH (lname,fname) AGAINST (:search IN BOOLEAN MODE)";

$q   = $conn->prepare($sql) or die("failed!");
// Bind the params to the placeholders
$q->bindParam(':search', $search, PDO::PARAM_STR);
$q->execute();
}

if ($search !== null && $category !== null){

$sql = "SELECT * FROM people WHERE MATCH (lname,fname) AGAINST (:search IN BOOLEAN MODE) AND category = :category";

$q   = $conn->prepare($sql) or die("failed!");
// Bind the params to the placeholders
$q->bindParam(':search', $search, PDO::PARAM_STR);
$q->bindParam(':category', $category, PDO::PARAM_STR);
$q->execute();
}

if ($category !== null && $search !== null && isset($price)){

$sql = "SELECT   *
        FROM     people
        WHERE    MATCH (lname,fname) AGAINST (:search IN BOOLEAN MODE)
        AND      category = :category
        ORDER BY price ".$price;

$q = $conn->prepare($sql);
// Bind the params to the placeholders
$q->bindParam(':search', $search, PDO::PARAM_STR);
$q->bindParam(':category', $category, PDO::PARAM_STR);
$q->execute();
}

if ($category == null && $search !== null && isset($price)){

$sql = "SELECT   *
        FROM     people
        WHERE    MATCH (lname,fname) AGAINST (:search IN BOOLEAN MODE)

        ORDER BY price ".$price;

$q = $conn->prepare($sql);
// Bind the params to the placeholders
$q->bindParam(':search', $search, PDO::PARAM_STR);
$q->execute();
}

if ($q){

//declaring counter
    $count=0;
    while($r = $q->fetch(PDO::FETCH_ASSOC)){
    $row = $r;

    $fname = $row['fname'];
    $lname = $row['lname'];
    $firstname = $row['firstname'];
    $surname = $row['surname'];

//counter equals
$count++;

//insert an image every 5 rows
    if($count==5){
    $count=0;
   echo "<table width='50%' style='border-bottom:1px solid #000000;'";
echo "<tr>";
echo "<td>";
echo "<div id='page-wrap'>";
echo "<div class='discounted-item freeshipping'>";

echo "<a href='images/box1.png' rel='lightbox'><img src='images/box1.png' width='20%' height='98%' /></a>";


echo "<div class='reasonbar'><div class='prod-title' style='width: 70%;'>AN AD CAN GO HERE</div><div class='reason' style='width: 29%;'><b>Ad Company</b></div></div>";

echo "<div class='reasonbar'><div class='prod-title1' style='width: 70%;'>Description about the advert from a company</div><div class='reason1' style='width: 29%;'>Category: Advert</div></div>";

echo "<div class='reasonbar'><div class='prod-title2' style='width: 70%;'>HELLO, User</div><div class='reason2' style='width: 29%;'></div></div>";


echo "</td>";
echo "</tr>";
echo "</td>";
echo "</tr>";
echo "</table>";
}




echo "<table width='50%' style='border-bottom:1px solid #000000;'";
echo "<tr>";
echo "<td>";
echo "<div id='page-wrap'>";
echo "<div class='discounted-item freeshipping'>";

echo "<a href='./img/users/" . $row['category'] . "/" . $row['username'] . "/" . $row['filename'] . "' rel='lightbox'><img src=\"./img/users/" . $row['category'] . "/" . $row['username'] . "/" . $row['filename'] . "\" alt=\"\" width='15%' height='80%' /></a>";


echo "<div class='reasonbar'><div class='prod-title' style='width: 70%;'>" .$row['fname'] . "</div><div class='reason' style='width: 29%;'><b>". $row['firstname'] . " " . $row['surname'] ."</b></div></div>";

echo "<div class='reasonbar'><div class='prod-title1' style='width: 70%;'>" .   $row['lname'] . "</div><div class='reason1' style='width: 29%;'>Category:<br /> ".   $row['category'] . "</div></div>";

echo "<div class='reasonbar'><div class='prod-title2' style='width: 70%;'>Contact:" . $row['contact'] . "</div><div class='reason2' style='width: 29%;'>Price: &pound;".    $row['price'] . "</div></div>";



echo "</td>";
echo "</tr>";
echo "</td>";
echo "</tr>";
echo "</table>";

echo "<div id='myModal' class='reveal-modal'>";
echo "<h1>Modal Title</h1>";
echo "<p>Contact:" . $row['contact'] . "</p>";
echo "<a class='close-reveal-modal'>&#215;</a>";
echo "</div>";

echo "<a href='#' data-reveal-id='myModal'>Click Me For A Modal</a>";


}


}

else
echo "No results found for \"<b>$search</b>\"";
4

2 に答える 2

2

あなたが与えたリンクから:

Just give your modal div the class "reveal-modal"and a unique ID (we'll use the ID to launch this modal)By putting the "data-reveal-id" attribute on the anchor, when clicked the plugin matches the value of the "data-reveal-id" attribute (in this case "myModal") with an HTML element with that ID

現時点では、各モーダルに同じ id を与えているように見えるので、すべてのモーダル リンクは最初のものをターゲットにします。

echo "<div id='myModal".$count."' class='reveal-modal'>";
echo "<h1>Modal Title</h1>";
echo "<p>Contact:" . $row['contact'] . "</p>";
echo "<a class='close-reveal-modal'>&#215;</a>";
echo "</div>";

echo "<a href='#' data-reveal-id='myModal".$count."'>Click Me For A Modal</a>";
于 2012-09-22T16:15:02.497 に答える
0

データベースからデータを取得するときは、必ずwhile($row=$req->fetch())すべてのデータを取得するために使用してください。次に、必要に応じて正しい行を選択する必要があります。

注意してください、$rowすべての行を含む配列です。したがって$row[0]['contact']、最初の行、2 番目の行などからの連絡先が含まれ$row[1]['contact']ます...

于 2012-09-22T15:56:01.673 に答える