Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行PHP代码,根据文本元素的值从数据库中获取值_Javascript_Php_Mysql_Database - Fatal编程技术网

Javascript 运行PHP代码,根据文本元素的值从数据库中获取值

Javascript 运行PHP代码,根据文本元素的值从数据库中获取值,javascript,php,mysql,database,Javascript,Php,Mysql,Database,所有我;我正在构建一个基于web的系统。在这里,我在想,是否可以根据我在文本框中输入的数字来获取名称。我所做的尝试如下。我知道它不起作用。还有其他解决办法吗?请帮忙 html代码是 Item No:<input name="iNo" type="text" id="iNo" size="40" maxlength="6" onblur="namesrch()"> Item Name:<input name="na" type="text" id="na" siz

所有我;我正在构建一个基于web的系统。在这里,我在想,是否可以根据我在文本框中输入的数字来获取名称。我所做的尝试如下。我知道它不起作用。还有其他解决办法吗?请帮忙

html代码是

    Item No:<input name="iNo" type="text" id="iNo" size="40" maxlength="6" onblur="namesrch()">
    Item Name:<input name="na" type="text" id="na" size="40" maxlength="40"  disabled>
项目编号:
项目名称:
这是我的javascript

function namesrch(){
            iNumber = document.getElementById('iNo').value;
            document.getElementById('na').value="<?php $SQL="SELECT iName FROM item Where iNo='iNumber'" ; $run=mySQL_Query($SQL,$con) or die ("SQL error"); while($rec=mySQL_fetch_array($run)){echo $rec{'iName'}}?>";
        }
函数namesrch(){
iNumber=document.getElementById('iNo')。值;
document.getElementById('na')。value=“”;
}

希望你能理解我的意图。提前感谢。

JavaScript是客户端语言,而as PHP是服务器端语言。你不能像那样在JavaScript中运行PHP。你需要的是

下面是一个简单的例子:

Javascript

$('#iNo').on('update', function() {
    $.ajax({
        type: 'POST',
        url: 'ajax.php',
        data: { no: $(this).val() }
        success: function(name) {
            $('#na').val(name);
        }
    });
});
Ajax.php

$dbConn = new MySqli($host, $username, $passwd, $dbName);
$no= filter_input(INPUT_POST, "no", FILTER_VALIDATE_INT);
$query = "SELECT iName FROM item WHERE iNo = $no";
$result = $dbConn->query($query);
$name = '';
if($dbConn->errno) {
    //An error occurred
} elseif($result->num_rows) {
    $row = $result->fetch_assoc();
    $name = $row['iNo'];
    $result->free();
}

echo $name;
你会注意到我使用的是,而不是MySQL。MySQL已贬值,不应再使用。值得你花时间学习使用或


我希望这会有所帮助。

您不能将php和js混合使用。假设您希望所有代码都在一个文件中:

filename.php(未测试)


也许可以考虑将代码放在几行而不是一行。你不能像那样混合使用javascript和php。您需要使用输入的值进行AJAX调用,将其传递给服务器,服务器运行PHP请求信息,并将其返回给javascript。它无法在客户端上动态更改Javascript值。
<?php 
    if (isset($_GET['iNumber'])) {

        $mysqli = new mysqli("localhost", "my_user", "my_password", "database_name");

        // You need to check for sql injection here

        $SQL = "SELECT iName FROM item Where iNo = '".$_GET['iNumber']."'' LIMIT 1"; 

        $result = $mysqli->query($query);

        $row = $result->fetch_assoc();

        echo json_encode(array('iName' => $row['iName']));

        exit();
    }
?>
<html>
<head>
    <title></title>
</head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<body>
    Item No:<input name="iNo" type="text" id="iNo" size="40" maxlength="6" onblur="namesrch()">
    Item Name:<input name="na" type="text" id="na" size="40" maxlength="40"  disabled>
    <script type="text/javascript">
        function namesrch() {
            iNumber = document.getElementById('iNo').value;

            $.getJSON('filename.php?iNumber='+iNumber, function(response) {
                $('#na').value(response.name);
            });
        }
    </script>
</body>

</html>