Javascript 从输入字段获取变量值并在SELECT-WHERE语句PHP中使用
长期以来,我一直陷于这个问题中,并试图寻找解决方案,但无法解决。 我有一个输入字段,用户将在其中键入事件表中已经存在的ocationname,然后我编写了php代码,以便显示该ocationname的整行。 下面是我的代码,我总是得到表的第一行,这意味着它没有执行检查或WHERE条件。我尝试分配$X值,如下所示: $X=gh是表中存在的位置名称,它工作正常。 php似乎是在页面加载时执行的,这意味着在用户键入输入值之前。但这没有任何意义,因为为什么它会显示第一行呢 注意:我使用ifissset$\u POST['s']来获取用户是否单击按钮,但它不起作用,因为在单击之前执行php代码 函数GetI { var x=document.getElementByIdtt.value; document.getElementByIdtvalue.value=x; }Javascript 从输入字段获取变量值并在SELECT-WHERE语句PHP中使用,javascript,php,html,mysql,Javascript,Php,Html,Mysql,长期以来,我一直陷于这个问题中,并试图寻找解决方案,但无法解决。 我有一个输入字段,用户将在其中键入事件表中已经存在的ocationname,然后我编写了php代码,以便显示该ocationname的整行。 下面是我的代码,我总是得到表的第一行,这意味着它没有执行检查或WHERE条件。我尝试分配$X值,如下所示: $X=gh是表中存在的位置名称,它工作正常。 php似乎是在页面加载时执行的,这意味着在用户键入输入值之前。但这没有任何意义,因为为什么它会显示第一行呢 注意:我使用ifissset$
哇,这段代码有很多问题。我会查看/var/logs/httpd,看看你做错了什么 然而 第一个问题是您的字段没有name='tvalue'或类似的名称。您不能使用$\u POST['tvalue']
我认为第二个问题是这个问题的答案。我不知道你可以用foreach翻阅数据库,通常你是在while循环中完成的。正如其他人所说,你应该使用Mysqli。不管怎样,这就是答案,我希望你能从中学习
<?php
$form = "
<form id=\"addingform1\" action=\"testing.php\" name=\"addingform1\" method=\"post\">
<input id=\"tvalue\" type=\"text\" class=\"contactField\" value=\"".$xvar."\"/>
<input type=\"submit\" name=\"s\" class=\"pageapp-login-button button button-small button-green button-fullscreen \" style=\"font-size:13px\" value=\"Fordata\"/>
</form>";
IF (isset($_POST['s'])) { // form has been submitted
$err = ""; // form errors
// Associate and Sanitize form variables
$xvar = htmlspecialchars(strip_tags(trim($_POST['tvalue'])));
// Validate form variables
IF (empty($xvar)) { $err .="- tvalue is empty"; }
IF (!empty($err)) {
echo($err); // display errors
// display the form
echo($form);
}ELSE{ // no errors
// DB connection -- only include/establish when needed.
include('database/connect-mysql.php');
mysql_query("set character_set_server='utf8'");
mysql_query("set names 'utf8'");
$_xvar = mysql_real_escape_string($xvar);
$result = "";
// sql
$sql = "SELECT Date, Address, City, TotalGuest FROM Events WHERE OccationName = '$_xvar'";
$query = $dbcon->query($sql);
IF ($query) {
While ($row = mysql_fetch_array($query)) {
// Loop through and build tr rows.
$result .= "<tr><td>".$row['Date']."</td><td>".$row['Address']."</td><td>".$row['City']."</td><td>".$row['TotalGuest']."</td></tr>";
}
mysql_free_result($result);
}ELSE{
// No results from query
$result .= "<tr><td colspan=\"4\">No results for ".$xvar."</td></tr>";
}
mysql_close($dbcon); // close your db connection
// Display results
echo("\n
<table id=\"tid\" >
<th><div style=\"overflow: auto; height: 30px; width: 100px;\">Date</th>
<th><div style=\"overflow: auto; height: 30px; width: 100px;\">Address</th>
<th><div style=\"overflow: auto; height: 30px; width: 100px;\">City</th>
<th><div style=\"overflow: auto; height: 30px; width: 100px;\">TotalGuest</th>
</tr>
".$result."
</table>");
}
}ELSE{
// Form has not been submitted, thus show the form.
echo($form);
}
?>
您易受攻击。不再支持mysql_*函数,它们已不再维护,将来也会维护。你应该用或更新你的代码,以确保将来项目的功能。而且你生成的HTML也是错误的。标题上没有标记,因此所有的标题都会被推到表的上方/外部。请发布完整的代码HTML和all,我将向您发布答案以及失败的原因。另外,请参阅感谢您编写此代码,但它不起作用,因为我得到的结果与显示表的第一行相同,即使我输入了错误的信息。你自己尝试过这个代码吗?是否将粘贴复制到新文件testing.php?它在我的测试中起作用。是的,你是对的!我确实给id分配了tvalue而不是name!它正在工作!非常感谢你!!顺便说一下,它与foreach codition一起工作,我没有将其更改为loop,因为我学到了一些新的东西!我以前从未在foreach循环中尝试过。