本问题已经有最佳答案,请猛点这里访问。
我很难让这个工作。我可以从下拉菜单调用数据,并将其放入表中,并在不重新加载页面的情况下使其主动更新。我现在正在尝试获取调用后出现在文本输入字段或其他下拉菜单中的数据库信息。
所以基本上我有一个下拉菜单,可以调用用户信息,我正在尝试获取被调用的信息显示在另一个表单中,这样我就可以更新它了。这是我正在处理的代码;
表7.PHP
function showUser(str) {
if (str=="") {
document.getElementById("txtDisp").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("txtDisp").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser2.php?q="+str,true);
xmlhttp.send();
}
Select a person:
$con=mysqli_connect("localhost","user","password","database");
// Check connection
if (mysqli_connect_errno()) {
echo"Failed to connect to MySQL:" . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM users");
while($row = mysqli_fetch_array($result)) {
echo"" . $row['uname'] ."";
mysqli_close($con);
}
?>
Person info will be listed here.
GETUSER 2.PHP
$q = intval($_GET['q']);
$con=mysqli_connect("localhost","user","password","database");
// Check connection
if (mysqli_connect_errno()) {
echo"Failed to connect to MySQL:" . mysqli_connect_error();
}
$sql="SELECT * FROM users WHERE id = '".$q."'";
$result1 = mysqli_query($con,$sql);
echo"
Username | Info 1 |
---|
echo"
";while($row1 = mysqli_fetch_array($result1)) {
echo"
";echo"
";echo"
" . $row1['email'] ."";echo"
" . $row1['info1'] ."";echo"
";}
echo"
";echo"
";mysqli_close($con);
?>
在getuser2.php代码中,如果去掉表单输入部分并用下面直接用于电子邮件和信息格式的uname调用替换它,它将以标准文本格式显示从数据库调用的数据。
但是,我遇到了这个错误:
Parse error: syntax error, unexpected 'text' (T_STRING), expecting ',' or ';' in C:\wamp\www\getuser2.php on line 25
有错误信息吗?
是,分析错误:语法错误,C:wampwwwgetuser2.php第25行中的"text"(t_string),应为","或";",第25行中的"echo"
;
你能把那个错误编辑成问题吗?这太重要了,不能仅仅在评论中提及。啊哈…您需要使用"转义该HTML块中的引号,否则它们将充当字符串终止符。
根据下面的答案更新您的代码,如果有帮助请告诉我
我也会尝试你的方法,六角,我用了六角形,它有效,但有两个工作方法会更有益,因为有时一个可能不工作…非常感谢您的帮助!!我会在几分钟内把它作为一个问题,以便其他人更容易参考!
是的,您的方法也可以使用十六进制,我已经更新了问题标题以反映解析错误。
问题如下:
echo"
";在双引号字符串中有双引号。PHP不知道字符串的结尾。
一个简单的解决方法是将双引号改为单引号(因为您无论如何都不会在字符串中使用变量):
echo '
';好的爵士色拉杰法尔肯!!!!非常感谢。所以,当在echo和form中调用变量时,我总是将""放在""的内部。是否存在不适用或导致进一步问题的情况?
单引号按原样传递字符串。它有一个很好的副作用,可以让您在不转义任何东西的情况下写出HTML,因为HTML主要使用双引号。双引号允许您在双引号字符串中放置变量。另一种方法是使用"来避开每个双引号,如@hex494d49的答案所示。
使用"over"是否有实质性的好处,反之亦然?
这在很大程度上是个人喜好的问题。我更喜欢使用单引号,因为它可以避免意外插入变量,但其他人更喜欢单引号,这样他们就可以将变量放入字符串中了!也就是说,我倾向于对SQL语句使用双引号,因为这样我就可以在语句内部使用单引号了。无论什么对你有用!
不到5年,这个答案从根本上改变了我用JS和PHP编程的方式。
我想用的代码
我只想从数据库中搜索,并且我遵循说明和教程,这是错误
Parse error: syntax error, unexpected '$query2' (T_VARIABLE),
expecting ',' or ')' in C:\xampp\htdocs\search2.php on line 8
请在图像链接中添加说明。
@保罗弗洛伊德也许是作为一个问题发布的。不幸的是,这是一个贴着"答案"的问题。应告知海报作为一个新问题张贴,而不是张贴在保留用于回答现有问题的部分。
如下所示更新这些行
$sql ="SELECT * FROM users WHERE id =" . $q ."";
// ...
echo"
Username | Info 1 |
---|
// ...
echo"
";// ...
while($row1 = mysqli_fetch_array($result1, MYSQLI_ASSOC)) {
// ...
echo"
";@下投者请解释一下。
我否决了b/c,SQL语句容易受到SQL注入的攻击,然后删除了它,因为它的重要性有点低。
@Serakfalcon:我同意SQL字符串连接不是一个好的实践,但是OP已经注意到防范SQL注入。
@Serakfalcon,他的代码不起作用是因为一些语法错误,而不是因为没有使用准备好的语句。
@哈弗,谢谢你指出。
虽然这超出了原始问题的范围,但是什么样的格式更适合尝试实现我的目标?只是让它重定向到另一个页面进行更新?
@LeonardFrost事实上,我会有一个对象user和方法,select、edit、update、add和insert,以及至少两个模板-一个用于select和delete,一个用于insert和update。因此,有三个文件:user.php和tempaltes user_details.php和user_form.php。你可能还有另一个,user_list.phptempalte,把它们都列在一起。
我正试图从根本上发展这一点,但我想尝试从一个页面调用它们。php(或者我当时正在研究的任何变体)将是调用其中其他页面的主页,这样页面就不会不断地重新加载(在传统意义上),并通过使用Ajax脚本为最终用户创建一种简化的体验。我认为这是不可取的,因为我把表7.php中的数据调用到getuser2.php中,而不是让getuser2.php打开自己的数据库连接?对不起,我是一个相对新手。
我可能完全误解你了
Copyright © 码农家园