Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP在jquery中定义变量_Php_Jquery - Fatal编程技术网

如何从PHP在jquery中定义变量

如何从PHP在jquery中定义变量,php,jquery,Php,Jquery,我能够将服务器名传递给成功运行查询的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> &

我能够将服务器名传递给成功运行查询的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>
servertest.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

在PHP代码中,更改输出,使其显示您想要显示的值,而不带任何html标记


接下来在html代码中,更改$document.ready回调,以便将“D”替换为PHP将返回的调用响应文本。

简短的回答是使用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>";

. 它们不再得到维护,并且已经开始使用。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。我需要更改此行-$'rating'.val'D';-从PHP返回的内容。在我的示例中,server1的评级设置为A,因此我需要将评级变量设置为A,以便正确设置评级选项。感谢您的帮助。我几天前才开始使用jquery。你能提供我需要如何更改$document的更多信息吗?准备好了吗?没问题。。。首先我想检查一下。在$document.ready中,您的htmlData是从PHP输出的吗?另外,您希望“D”的内容嵌入到这个输出中,或者它是您想要添加的一个单独的源?它嵌入到从数据库获取它的PHP输出中。在这种情况下,您必须搜索您的输出。你试过下面@dbaseman的答案了吗?我现在能够得到正确的值,所以我非常接近。我只需要在html部分中更改评级的选项。我添加了:var rating=$htmlData.findtd[data col=rating].text;警戒等级;警报显示的值正确。我基本上需要刷新评级的HTML代码,使其更改为该值。它正在获取该值,因此我非常接近,但我只需要更改下面HTML中的评级选项值。我补充说:
var rating = $(htmlData).find("td[data-col=rating]").text();