0

一直在尝试编辑我在 W3 学校找到的脚本。

编辑:我想要一个搜索文本框。我可以在其中输入数据,它将触发 PHP 脚本并返回值而无需重新加载主页。因此,当我输入“404040”并单击搜索按钮时,它应该执行此 adminsearchvip.php?q=404040 然后返回值而不重新加载主页。编辑结束。

原始脚本是一个下拉菜单,但我想要一个文本框。

我不确定发送“提交”按钮的代码是否正确。

第一个文件 searchvip.php

    <html>
<head>
<script>
function showUser()
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","adminsearchvip.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<form>
<label for="Number"></label>
<input type="text" name="Number" id="Numbers" value="">
<input type='button' onclick='showUser(Numbers.value)' value='Search' />
</form>
<br>
<div id="txtHint"><b>Person info will be listed here.</b></div>

</body>
</html> 

和它自己的脚本。

adminsearchvip.php

<?php
$q = intval($_GET['q']);

$con = mysqli_connect('localhost','xxxxxx','xxxxx','jossan');
if (!$con)
  {
  die('Could not connect: ' . mysqli_error($con));
  }

mysqli_select_db($con,"jossan");
$sql="SELECT * FROM vip_stat WHERE code = '".$q."'";

$result = mysqli_query($con,$sql);

echo "<table border='1'>
<tr>
<th>Number</th>
<th>Bought Date</th>
<th>Type</th>
<th>Price</th>
<th>Used</th>
<th>Activation Date</th>
<th>Username</th>
</tr>";

while($row = mysqli_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['number'] . "</td>";
  echo "<td>" . $row['time'] . "</td>";
  echo "<td>" . $row['type'] . "</td>";
  echo "<td>" . $row['Price'] . "</td>";
  echo "<td>" . $row['used'] . "</td>";
  echo "<td>" . $row['utime'] . "</td>";
  echo "<td>" . $row['username'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysqli_close($con);
?> 

我已经用我的网络浏览器测试了 www.homepage.com/adminsearchvip.php?q=9494943 并且我得到了正确的响应。所以脚本似乎工作。但是搜索页面甚至没有显示任何内容。

4

3 回答 3

1

“一直在尝试编辑我在 W3 学校找到的脚本。”

嗯,有你的问题。不要使用 W3 学校

由于您想使用 ajax 加载 html 表并在用户单击按钮时将其插入到您的 dom 中,因此您可以使用jquery load轻松完成此任务。这是一个粗略的例子:

//note: put id="buttonId" on the button element in order for this to work
$('#buttonId').click(function(){
    var value = $('#Numbers').val();
    if (value !== '') {
        $('#txtHint').load("adminsearchvip.php?q="+value);
    }
});

顺便说一句,您应该在 adminsearchvip 脚本中使用准备好的语句,而不是将 $q 变量连接到您的 sql。

于 2013-09-22T13:13:43.387 回答
0

更改以下行

<input type='button' onclick='return showUser()' value='Search' />

现在在你的函数 showUser 中添加一行。

function showUser()
{
  var str = document.getElementById("Number").value;

现在让我知道您是否还有问题。

于 2013-09-21T21:40:35.763 回答
0

根据您的问题,我建议您尝试一下 jquery。

链接到页面头部的 Jquery,

showUser()
{
 var url='adminsearchvip.php';
 var q = $("#Numbers").val();
 $("#txtHint").html('Loading Please Wait...');
 $.get(url,{ q: q } ,function(data){  $("#txtHint").html(data) }); 
}

这应该为你做。

由于它是一个搜索,$.get如果它是一个发布请求,则使用$.post. 如果您发现更多问题,请告诉我

这是 google CDN 托管的 jQuery 的链接 //ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js

这就是您的表单的外观

<form>
<label for="Number"></label>
<input type="text" name="Number" id="Numbers" value="">
<input type='button' onclick='javascript: showUser();' value='Search' />
</form>
<br>
<div id="txtHint"><b>Person info will be listed here.</b></div>
于 2013-09-28T13:12:50.007 回答