Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 javascript只获取第一行的变量_Php_Javascript_Mysql - Fatal编程技术网

Php javascript只获取第一行的变量

Php javascript只获取第一行的变量,php,javascript,mysql,Php,Javascript,Mysql,我正在尝试使用下拉菜单来“实时”更新表。我只打算在内部使用此网页 我真的不太懂javascript,所以我需要一些帮助 我编写的脚本只获取第一行的值,因此实际上不起作用 以下是两页代码: HTML 函数UpdateUser(str) { 如果(str==“”) { document.getElementById(“txtHint”).innerHTML=“”; 返回; } if(window.XMLHttpRequest) {//IE7+、Firefox、Chrome、Opera、Safar

我正在尝试使用下拉菜单来“实时”更新表。我只打算在内部使用此网页

我真的不太懂javascript,所以我需要一些帮助

我编写的脚本只获取第一行的值,因此实际上不起作用

以下是两页代码: HTML


函数UpdateUser(str)
{
如果(str==“”)
{
document.getElementById(“txtHint”).innerHTML=“”;
返回;
} 
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
var lastname=document.getElementById('lastname').innerHTML;
var firstname=document.getElementById('firstname').innerHTML;
var state=document.getElementById('state').innerHTML;
xmlhttp.open(“GET”、“updateuser3.php?q=“+str+”&lastname=“+lastname+”&firstname=“+firstname+”&state=“+state,true”);
xmlhttp.send();
}

州信息将列在这里。
php


我将从查询开始进行故障排除,以查看您的查询是否返回多个结果

在MySQL中运行
选择lastname、firstname、statefromauthor
查询

如果此查询返回多个结果,那么您知道问题出在您的代码上


我使用phpMySQL调试SQL。

第一课:
Java!=JavaScript
(抱歉jlordo)第二课:
id
在整个文档中必须是唯一的。由于DOM规范明确规定它必须是唯一的,
getElementById()
将永远不会返回多个匹配元素。您正在输出具有相同ID的多个元素,从数据库中获得的每行数据对应一个元素。您对SQL注入非常开放,如果您还没有进行过SQL注入,您将受到黑客攻击。使用准备好的/参数化的查询来完全避免这个问题。Kon:到目前为止,为什么要为java?ty的输入重新标记这个问题。我只是在内部使用它,不,我现在不担心sql注入。有什么建议可以帮我解决问题吗?
<html>
<head>     
<script>
function UpdateUser(str)

{
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;
    }

  }
    var lastname = document.getElementById('lastname').innerHTML;    
    var firstname = document.getElementById('firstname').innerHTML;                  
    var state = document.getElementById('state').innerHTML;             

    xmlhttp.open("GET","updateuser3.php?q="+str+"&lastname="+lastname+"&firstname="+firstname+"&state="+state,true);
    xmlhttp.send();
}


</script>
</head>
<body>
<?php

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


mysql_select_db("test");
$sql="SELECT lastname, firstname, state FROM author";

$result = mysql_query($sql);

echo $sql;
echo "<br />";


echo "<table border='1'>
<tr>
<th>lastname</th>
<th>firstname</th>
<th>State</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td name='lastname' id='lastname'>" . $row['lastname'] . "</td>";
  echo "<td name='firstname' id='firstname'>" . $row['firstname'] . "</td>";

  echo "<td><select onchange='UpdateUser(this.value)'><option name='state' id='state' value='".$row['state']."'>".$row['state']."</option>"; 

                        if  ($row['state']==='CA')
                            {
                            echo '<option value="OR">OR</option>';
                            echo '<option value="UT">UT</option>';
                            echo '<option value="MI">MI</option>';
                            echo '</select></td>';                                          
                            } 
                            else if ($row['state']==='OR')
                            {                    
                            echo '<option value="CA">CA</option>';
                            echo '<option value="UT">UT</option>';
                            echo '<option value="MI">MI</option>';
                            echo '</select></td>';  
                            }
                            else
                            {
                            echo '<option value="CA">CA</option>';
                            echo '<option value="UT">UT</option>';
                            echo '<option value="MI">MI</option>';
                            echo '<option value="OR">OR</option>';
                            echo '</select></td>';                                  
                            }                  

  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>
<br>
<div id="txtHint"><b>State info will be listed here.</b></div>

</body>
</html>
<?php
$q=$_GET["q"];
$w=$_GET["lastname"];
$e=$_GET["firstname"];
$r=$_GET["state"];

echo "<br /> New State: ";
echo $q;
echo "<br /> Last Name: ";
echo $w;
echo "<br /> First Name: ";
echo $e;
echo "<br /> Old State: ";
echo $r;
echo "<br />";

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


mysql_select_db("test");


$sql = "UPDATE author SET state = '$q' WHERE lastname = '$w' AND firstname = '$e' AND state = '$r'";

echo $sql;
echo "<br />";

mysql_close($con);
?>