JavaScript中的php和DB查询,没有Ajax

php and DB query in javascript without Ajax

本文关键字:没有 Ajax 查询 DB 中的 php JavaScript      更新时间:2023-09-26

编辑:
我在这个概念中遇到了问题,但是这可能会帮助其他一些问题,谢谢大家。




我检查了一个代码,它工作正常,我很惊讶!因为它在没有 Ajax 的情况下完成。
在 WAMP 中测试的代码,这里是代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1
/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
*{font-size:8pt;}
div#result{
    border:1px solid gray;
    width:50%;
    min-height:50px;
    text-align:right;
    color:#666666;
    font-family:Tahoma;
    padding:3px;
    }
div#result b{color:red;}
</style>
<script type="text/javascript">
function GetResult(s){
    var s=document.getElementById('s');
    var resultDiv = document.getElementById('result');
    resultDiv.innerHTML = '<?php 
    //My PHP Codes
    $conn = mysql_connect("127.0.0.1","root","");
    if(!$conn){echo "Error in DB connection"; }
    mysql_select_db("test");
    mysql_query("set character set utf8");

    $s=sprintf("'+s.value+'");
    $sql = "SELECT *
                FROM `test`";
    $result = mysql_query($sql);
    while($row=mysql_fetch_array($result)){
        echo $row["1"];
        echo "<br />";
        }
    echo "You searched: <b>".$s."</b>";
    ?>';
    }
</script>
</head>

<body>

<form id="searchForm" onsubmit="javascript:GetResult(document.getElementById('s'));return 
false;">
<input type="text" id="s" />
<input type="submit" value="Search!" />
</form>
<div id="result">
</div>


上面的代码从名为:"test"的表中检索所有数据,数据库也名为"test"。
我的查询是:

$sql = "SELECT * FROM test";  

但以下查询剂量不起作用:

$sql = "SELECT * FROM test WHERE `name` LIKE ''%".$s."%''";   

为什么?问题出在哪里?
问候

您需要了解PHP是一种服务器端语言,需要某种形式的页面重新加载才能运行。这通常通过 AJAX 或表单完成。

构建代码的方式表明你希望javascript函数返回搜索结果,这是不可能的。

我不妨写在这里。您的代码永远不会以这种方式工作。

您的语法不正确。必须LIKE ''%".$s."%''哪列?假设该列colname .您的查询应为:

$sql = "SELECT * FROM test WHERE colname LIKE ''%".$s."%''";  

回顾你的代码,你也在做一些/非常奇怪/的事情。那里的PHP正在执行/在javascript发送到客户端之前/。PHP 运行服务器端,JS 运行客户端,因此 JS 无法将参数传递给 PHP。

PHP 仅在客户端计算机接收数据之前在服务器上执行。从客户端的角度来看,使用 PHP 编写的部分是固定的,不会使用仅客户端例程进行更改。您必须从服务器发出新请求才能重新插入 PHP 代码。

它"第一次"对您

"有效",因为 PHP 查询在您收到页面之前运行并发出数据。