0

クエリを正常に実行する PHP にサーバー名を渡すことができます。HTML ファイルでは、PHP ファイルから返された値に応じて評価オプションを変更したいと考えています。私のファイルでは D に設定しましたが、PHP から返されるものを反映するように変更する必要があります。

server.html

<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
        <script type="text/javascript" >
        $(document).ready(function(){
            var id = $('#existingserver').val();            
            $('#assetCenter').click(function(){
                var id = $('#textfield').val();
                $.get('servertest.php',{q:id}, function(htmlData){
                    $('#txtHint').html(htmlData);
                    var rating = $(htmlData).find("td[data-col=rating]").text();
                    alert(rating);
                    });
            });
        });

        </script>
    </head>
    <body>
        <form>
            <label>Existing Server</label><input type="text" name="existingserver" id="textfield" maxlength="15"/>

            <input type="checkbox" id="assetCenter" >Select to Pull Asset Center Data<br>
            <br />
            <br />
            Rating
            <select name="rating" id="rating" >
                <option value="A">A</option>
                <option value="B">B</option>
                <option value="C">C</option>
                <option value="D">D</option>
            </select>
        </form>
        <br />

        <div id="txtHint"><b>Server info will be listed here.</b></div>
    </body>
</html>

サーバーtest.php

<?php
$q=$_GET["q"];

$con = mysql_connect('localhost', 'assignip', 'assignip');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ipreservation", $con);

$sql="SELECT * FROM acdata WHERE servername = '".$q."'";

$result = mysql_query($sql);

echo "<table border='1'>
<tr>
<th>Servername</th>
<th>Contact</th>
<th>Classification</th>
<th>Rating</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['servername'] . "</td>";
  echo "<td>" . $row['contact'] . "</td>";
  echo "<td>" . $row['classification'] . "</td>";
  echo "<td>" . $row['rating'] . "</td>";
  echo "</tr>";
  echo "<td data-col='rating'>" . $row['rating'] . "</td>";
  }

  echo "</table>";

mysql_close($con);
?> 

データベース フィールド: サーバー名、連絡先、分類、評価 データ: Server1、Ray、Production、A

4

2 に答える 2

1

簡単な答えは、JQuery セレクターを使用して評価を取得することです。

// get the text of the 4th td
var rating = $(htmlData).find("td").eq(3).text();

$("#rating").val(rating);

ただし、このアプローチは脆い (密結合とも呼ばれる) ことに気付くかもしれません。UI で何かが変更された場合、たとえば列の順序を変更すると、上記のロジックが壊れます。

サーバーからのデータを JSON として返し、クライアント側のテンプレートを適用して HTML テーブルを取得することをお勧めします。少なくとも、列には次のような名前を付けます。

echo "<td data-col='rating'>" . $row['rating'] . "</td>";

次に、名前を参照してクライアント側で選択できます。

var rating = $(htmlData).find("td[data-col=rating]").text();
于 2012-12-03T18:17:02.053 に答える
1

PHP コードで、表示する値が html タグなしで表示されるように出力を変更します。

次に、HTML コードで $(document).ready コールバックを変更して、「D」が呼び出しの応答テキスト (PHP が返すテキスト) に置き換えられるようにします。

于 2012-12-03T18:09:44.040 に答える