从数据库中获取变量数据并在PHP中显示

Get variable data from database and display in PHP

本文关键字:PHP 显示 变量 数据库 获取 数据      更新时间:2023-09-26

我想传递值从输入框数据在php,它的显示,但php sql不识别

<form name="form1"/>
<input type="text" name="code1" value="D50" size="7" maxlength="10" onblur="chkidpro(this.value,'provider1');" />
<input type="text" name="code2" value="" size="7" maxlength="10"/>
<form/>
<script type="text/javascript">
var jvalue = form1.code1.value;
<?php $abc = "<script>document.write(jvalue)</script>"?> 
</script>
<?PHP 
$con = mysql_connect("localhost","abc_one","pass");
mysql_select_db("abc_one", $con);
echo $abc;// ITS PRINT AS D50
$c = 'D50';
//$c = $abc;
$result2 = mysql_query("SELECT * FROM tblmycode where code='$c';");
$tab = mysql_fetch_array($result2);
if($result2 === false)
{
die("Database Error");
}
if(mysql_num_rows($result2) == 0)
{
die("No Record Found");
}

echo $ abc;

如果我替换$c = $abc;NO RECORD FOUND

如果我替换$c = 'D50';记录可用

您展示的代码在SERVER端工作,因此:

 <?php $abc = "<script>document.write(jvalue)</script>"?> 

设置$abc"<script>document.write(jvalue)</script>"

您在那里编写的javaScript将在客户端(浏览器)上工作。不要把它们混在一起…

Ok澄清发生了什么:

该文本位于服务器的php文件中,因此当调用时:

Line                                       Action on Server
<form name="form1"/>                       //->sent to client
<input type="text" name="code1" value="D50"//->sent to client
<input type="text" name="code2" value=""   //->sent to client
<form/>                                    //->sent to client 
<script type="text/javascript">            //->sent to client
var jvalue = form1.code1.value;            //->sent to client(will run on client) 
<?php                                      //->php takes control on server
 $abc = "<script>document.write(jvalue)</script>"; //php runs this on server 
 //php sets $abc to "<script>document.write(jvalue)</script>" on server...
 //php does not process javascript, php sees it as text...
?>                                         //->ends php control
</script>                                  //->sent to client
<?PHP                                      //->php takes control on server again
$con = mysql_connect("localhost","abc_one","pass"); // php runs this on server
mysql_select_db("abc_one", $con);                   // php runs this on server
echo $abc;                                          // php echoes $abc

表示包含

的行
<script>document.write(jvalue)</script> 

发送到客户端

它被写入您的客户端文档…

将在客户端计算机上计算,而不是在服务器上。

它将在不久的将来发生,现在还没有....

为什么在浏览器上看到D50 ?让我们展望一下未来:

那么当CLIENT(浏览器)解析javascript时会发生什么呢?

浏览器将执行

var jvalue = form1.code1.value;

行并设置jvalue为D50当然当浏览器遇到

<script>document.write(jvalue)</script>

它将运行它并在客户端上显示jvalue 的值,即D50

所有这些都将发生在客户端计算机上,而不是在服务器上。

所以这将在不久的将来发生,现在还没有....

现在回到php文件

//$c = 'D50';    // lets ignore this   
$c = $abc;                                    // php runs this on server. 
// guess what now $c is '<script>document.write(jvalue)</script>'     
// then php tries to run this:
$result2 = mysql_query("SELECT * FROM tblmycode where code='$c';");

现在你的问题变得非常有趣了:

SELECT * FROM tblmycode where code='<script>document.write(jvalue)</script>';
我希望你现在明白发生了什么…

你需要了解后端和前端是如何工作的。

PHP首先生成HTML服务器端,将其发送给用户,然后在浏览器中运行它并执行Javascript。

所以当你写这个时:

$abc = "<script>document.write(jvalue)</script>"

$abc而不是作为JavaScript的结果。它将是一个包含<script>document.write(jvalue)</script>的字符串。

所以你的方法是完全错误的——你不能把这样的变量传递给PHP!

您需要做的是将字段值发送到服务器,以便脚本可以处理它们。