Javascript 从输入字段获取变量值并在SELECT-WHERE语句PHP中使用

Javascript 从输入字段获取变量值并在SELECT-WHERE语句PHP中使用,javascript,php,html,mysql,Javascript,Php,Html,Mysql,长期以来,我一直陷于这个问题中,并试图寻找解决方案,但无法解决。 我有一个输入字段,用户将在其中键入事件表中已经存在的ocationname,然后我编写了php代码,以便显示该ocationname的整行。 下面是我的代码,我总是得到表的第一行,这意味着它没有执行检查或WHERE条件。我尝试分配$X值,如下所示: $X=gh是表中存在的位置名称,它工作正常。 php似乎是在页面加载时执行的,这意味着在用户键入输入值之前。但这没有任何意义,因为为什么它会显示第一行呢 注意:我使用ifissset$

长期以来,我一直陷于这个问题中,并试图寻找解决方案,但无法解决。 我有一个输入字段,用户将在其中键入事件表中已经存在的ocationname,然后我编写了php代码,以便显示该ocationname的整行。 下面是我的代码,我总是得到表的第一行,这意味着它没有执行检查或WHERE条件。我尝试分配$X值,如下所示: $X=gh是表中存在的位置名称,它工作正常。 php似乎是在页面加载时执行的,这意味着在用户键入输入值之前。但这没有任何意义,因为为什么它会显示第一行呢

注意:我使用ifissset$\u POST['s']来获取用户是否单击按钮,但它不起作用,因为在单击之前执行php代码

函数GetI { var x=document.getElementByIdtt.value; document.getElementByIdtvalue.value=x; }
哇,这段代码有很多问题。我会查看/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循环中尝试过。