1

それで、これが取引です。データを入力したい html テーブルがあります。具体的には、最初の行は mysql データベースの要素で満たされている行です。正確には、この表は携帯電話に関するアンケートです。最初の行は、携帯電話の名前がデータベースから読み込まれるヘッダーです。オプションとして会社名を持つ select タグもあります。select タグで onChange イベントをトリガーしてページをリロードし、ドロップダウン リストで現在選択されている会社のモバイルの新しい名前を最初の行に再入力する必要があります。これは私の選択がほとんどどのように見えるかです:

<select name="select" class="companies" onChange="reloadPageWithNewElements()">
<?php
    $sql = "SELECT cname FROM companies;";
$rs = mysql_query($sql);

while($row = mysql_fetch_array($rs)) {
    echo "<option value=\"".$row['cname']."\">".$row['cname']."</option>\n  ";
}
?>
</select>

だから... onChangeでこのページを更新し、選択した値を同じページに再度渡し、それを新しいphp変数に割り当てて、テーブルを埋めるために必要なクエリを実行できるようにする方法はありますか?

<?php
//$mobileCompanies = $_GET["selectedValue"];
$sql = "SELECT mname FROM ".$mobileCompanies.";";
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)) { 
    echo "<td><div class=\"q1\">".$row['mname']."</div></td>";
}

?>

このようなもの。( reloadPageWithNewElements() と selectedValue は、今のところ単なるアイデアです)

4

3 に答える 3

1

値を hidden に保存しますinput

<input type='hidden' value='<?php echo $row['cname'] ?>' id='someId' />

JavaScript 関数では、この隠し入力フィールドの値を使用します。

function reloadPageWithNewElements() {
    var selectedValue = document.getElementById('someId').value;
    // refresh page and send value as param
    window.location.href = window.location + '?someVal='+ selectedValue;
}

再び PHP ファイルで、次のように使用するために URL からこの値を取得します。

$someVal = null;

if (isset($_GET['someVal']) {
          $someVal = $_GET['someVal'];
}

これが機能するかどうかを確認してください!!!

于 2012-09-04T09:09:23.087 に答える
0

最良のオプションはAJAXを使用することです。

reloadPageWithNewElements()は、自分のサイトのページを呼び出す関数であり、テーブルに配置するデータを返します。

JQueryを使用している場合、AJAXは非常に簡単に実装できます。

$.ajax({
    url: '/yourPage',
    data: { selectedCompany: $('.companies').val() },
    success: function(result) {
        //delete your tablerows
        $(".classOfTable tr").remove();
        //put the result in your html table e.g.
        $('.classOfTable').append(result);
    },
    dataType: html
});

ブラウザは「/yourPage?selectedCompany = Google」などにリクエストを送信します。このページにhtmlのみを印刷させるだけです(テーブル行(<tr>)のみを印刷する方が簡単かもしれません)。

ご不明な点がございましたら、お問い合わせください。

于 2012-09-04T09:01:48.363 に答える
0

私はそれを行うためにjQueryを使用します。

最初に、すべてのオプションタグに「id」属性を追加する必要があります

<option id="option1">
<option id="option2">

など...次にjQueryを使用:

$('<option>').change(function() {
   var id=$(this).attr('id');
...save data here (i.e: with ajax $.post(url, { selected_id: id}, callback }
});
于 2012-09-04T09:36:20.807 に答える