2

ユーザーが検索フォームでクリックした内容に基づいて、ユーザーを別のページにリダイレクトしたいと思います。これは、ajaxを使用してDBから入力します。

ページを別のページにリダイレクトし、IDパラメータを渡すonclickイベントを作成するにはどうすればよいですか?

現在、ドロップダウン検索メニューからオプションを強調表示するとすぐに、新しいページ(some_page.phpと呼ばれますか?正しいカードIDを使用)に移動します。変更したいのは、ユーザーがクリックしたときにのみそこに送信することです。カード。

ここに画像の説明を入力してください

JS

function display(id)
    {
        //document.getElementById('text_content').value = word;
            document.getElementById('box').style.display = 'none';
        document.getElementById('text_content').focus();
        window.location.href = "some_page.php?card_id=" + id;

    }

php

<?php
    $mysqli = mysqli_connect('localhost', 'root', '', 'draftdb');

if(mysqli_connect_errno()) 
{
    echo "Connection Failed: " . mysqli_connect_errno();
    exit();
}


<?php
        $str = $_GET['content'];
        if(strlen($str))
        {
            $sel = mysqli_query($mysqli, "select CARD_NAME, CARD_ID,CARD_TYPE from cards where CARD_NAME like '".trim($str)."%'");
            if(mysqli_num_rows($sel))
            {
                echo "<table border =\"0\" width=\"100%\">\n";
                if(mysqli_num_rows($sel))
                {
                    echo "<script language=\"javascript\">box('1');</script>";
                    while($row = mysqli_fetch_array($sel))
                    {
                        $card_info = str_ireplace($str,"<b>".$str."</b>",($row['CARD_NAME']));
                        $card_type = str_ireplace($str,"<b>".$str."</b>",($row['CARD_TYPE']));

                echo "<tr id=\"word".$row['CARD_ID']."\" onmouseover=\"highlight(1,'".$row['CARD_ID']."');\" onmouseout=\"highlight(0,'".$row['CARD_ID']."');\" 
       onClick=\"display('".$row['CARD_NAME']."', " . $row['CARD_ID'] . ");\" >\n<td>".$card_info." ".$card_type."</td>\n</tr>\n";



                    }
                }
                echo "</table>";
            }
        }
        else
        {
            echo "<script language=\"javascript\">box('0');</script>";
        }
4

2 に答える 2

1

コードをやり直して、次のようなものを使用します。

PHP:

<?php
$mysqli = mysqli_connect('localhost', 'any_user_other_than_root', 'secure_password_here', 'draftdb');
if(!$mysqli) 
{
    die('Connection Failed: ' . mysqli_connect_errno());
}
$str = $_GET['content'];
if(!empty($str))
{
    $str = trim(mysqli_real_escape_string($mysqli, $str));
    $sel = mysqli_query($mysqli, "SELECT `card_name`, `card_id`, `card_type` FROM `cards` WHERE `card_name` LIKE '$str%'");
    if(mysqli_num_rows($sel) > 0)
    {
        echo '<form action="some_page.php" method="post">' . PHP_EOL;
        echo '<select name="card_id" id="card_id" size="8">' . PHP_EOL;
        while($row = mysqli_fetch_array($sel))
        {
            $card_info = str_ireplace($str, "<strong>$str</strong>", $row['CARD_NAME']);
            $card_info = str_ireplace($str, "<strong>$str</strong>", $row['CARD_TYPE']);
            echo '<option class="card" value="'. $row['CARD_ID'] . '">';
            echo "$card_info $card_type";
            echo '</option>' . PHP_EOL;
        }
        echo '</select>' . PHP_EOL;
        echo '</form>' . PHP_EOL;
    }
}
?>

CSS:

<style type="text/css">
    .card {
        background: #eee
    }
    .card:hover {
        background: #ccc
    }
</style>

もちろん、CSSは、現時点で使用しているように見せるために必要であり、JSが必要になる場合があります。

于 2012-08-15T04:01:12.060 に答える
1

私があなたなら、標準のフォーム送信を使用します。Javascriptは、インターネットのすべてのユーザーによってサポートされているわけではありません。あなたは確かにあなたのウェブサイトの機能を作ったり壊したりする何かのためにそれを使うことについて返信したくありません。私の会社は、Javascriptを使用する場合は、明確なフォールバックを提供すると信じています。あなたの場合、Javascriptが有効になっていないと、検索できません。

次のようなフォーム送信を使用します。

<form method="POST" id="myForm" action="search.php">

于 2012-08-15T03:58:14.297 に答える