Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 在不刷新页面的情况下更新SQL数据_Javascript_Php_Html - Fatal编程技术网

Javascript 在不刷新页面的情况下更新SQL数据

Javascript 在不刷新页面的情况下更新SQL数据,javascript,php,html,Javascript,Php,Html,我试图用从数据库中获取的信息更新两个锁定的文本框。我在“Telefon”复选框中输入一个电话号码,我希望它能得到该电话号码的名字和姓氏。顺便说一句,这很有效,但不是我想要的方式。我希望信息自动放入文本框而不刷新页面。由于某种奇怪的原因,我的代码被一分为二。几个小时来我一直在寻找解决办法。我对编码非常陌生,我希望能得到一些帮助 <?php SESSION_START(); $output = NULL; if(isset($_POST['btn_checkTelefon'])) {

我试图用从数据库中获取的信息更新两个锁定的文本框。我在“Telefon”复选框中输入一个电话号码,我希望它能得到该电话号码的名字和姓氏。顺便说一句,这很有效,但不是我想要的方式。我希望信息自动放入文本框而不刷新页面。由于某种奇怪的原因,我的代码被一分为二。几个小时来我一直在寻找解决办法。我对编码非常陌生,我希望能得到一些帮助

<?php
SESSION_START();


$output = NULL;


if(isset($_POST['btn_checkTelefon'])) {

    require 'connectdb.php';

    $telefon_Search =  $connect_DB->real_escape_string($_POST['telefon_Search']);
    $sql = "SELECT * FROM elever WHERE Telefon = '$telefon_Search'";
    $resultSet = $connect_DB->query($sql); 

    if($resultSet->num_rows > 0) {
        while($rows = $resultSet->fetch_assoc()) {
            $fornavnoutput_Database = $rows['Fornavn'];
            $etternavnoutput_Database = $rows['Etternavn'];

        }   

    echo '<script type = "text/javascript">';

        echo 'function sayHi() {';
        echo 'val1 = document.getElementById("telefon_Input").value;';
        echo 'if(val1 == "") {';
        echo '  alert("Vennligst skriv inn ditt telefon nummer!");';
        echo '}';
        echo 'if(val1 !== "") { ';
        echo '  document.getElementById("check_Fornavn").value = "<?php echo $fornavnoutput_Database?>";';
        echo '  document.getElementById("check_Etternavn").value = "<?php echo $etternavnoutput_Database?>";';
        echo '}';
        echo '}';

    echo '</script>';
    } else {
        $output = "No results";
    }
}

$fornavnoutput_Database2 = "Fornavn";
$etternavnoutput_Database2 = "Etternavn";
?> 



  <!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" type="text/css" href="style2.css?<?php echo time(); ?>" />
        </script> 
    <script type = "text/javascript"></script>
    <title></title>

</head>
<body>
    <?php
        include 'connectdb.php';
    ?>
     <form name="form1" action="">


        <table id="valgt_skap_tabell" class="bokssvartabell">
            <tr>
                <td>Valgt skap</td>
            </tr>
            <tr>
                <td>
                    <input class="bokssvarskjema" type="text" name="Valgt skap" disabled value= <?php
                        if(isset($_POST["radios"])){
                            echo $_POST["radios"];
                        } else {
                            //header('location: index.php');
                        }   ?>>
                </td>
            </tr>
        </table>

        <table id="telefon_tabell" class="bokssvar_tabell">
            <tr>
                <td>Telefon:</td>
            </tr>
            <tr>
                <td><input type="text" name="telefon_Search" id="telefon_Input" maxlength=8"><br></td>
            </tr>
            <tr>
                <td><button type="button" name ="btn_checkTelefon" id="sjekkTelefon" onclick = "sayHi()">Sjekk</button></td>
            </tr>
            <div id="d1"></div>
        </table>

        <table id="opplysninger_tabell" class="bokssvartabell">
            <tr>
                <td>Fornavn:</td>
                <td>Etternavn:</td>
            </tr>
            <tr>
                <td><input type="text" name="Fornavn" disabled id="check_Fornavn"></td>
                <td><input type="text" name="Etternavn" disabled id="check_Etternavn"></td>
            </tr>
        </table>
    </form>

    <?php echo $output; ?>


</body>

瓦尔格特斯卡普

为此,您需要使用AJAX。示例
$.ajax()
->快捷方式
$.post()
$(“id”)。加载(“url”)
。。。在stackoverflow上查找关于这些的详细说明

请不要将JavaScript与php混合使用。 在单独的文件中使用它

编辑:你修好了吗? 加载分页动态的更简单方法是加载方法+操作。$。如果需要处理从php返回的数据,可以使用post。我将给你举一个负载的例子

我将给出一个正确的例子如何编码

通用函数用于查看href值并将HTML部分(本例中为表单)从PHP DynamicCaly加载到页面的链接,如果只有一个默认操作,则确实需要实现操作或调用普通页面。我在这里使用jQuery库。此脚本必须位于单独的文件中,否则它将正常工作,但您将在控制台中收到同步警告

$(function() {

        $('a').on("click", function(e) {
            e.preventDefault();
            e.stopPropagation();
            var URL = $(this).attr('href');
            $('body').load(URL, 'form');
        })

})
php示例 首选在单独的文件(如showfunctions.php)中使用showsomethingfunction

function myLinks() {
    echo "<a href='index.php?action=showsomething'>showsomething</a>"
}
<?php
    myLinks();
    if(isset($_GET["action"]){
     // do your ordinary thing like open connection with database.
    switch($_GET["action"]))
    {
    case "showsomething":
     //show showsomething() function with html
    break;

//further you can add more action instead of showsomething if you have several links

    }
    //close database.
    }
?>
函数myLinks(){
回声“”
}
index.php+包含的showfunctions.php

function myLinks() {
    echo "<a href='index.php?action=showsomething'>showsomething</a>"
}
<?php
    myLinks();
    if(isset($_GET["action"]){
     // do your ordinary thing like open connection with database.
    switch($_GET["action"]))
    {
    case "showsomething":
     //show showsomething() function with html
    break;

//further you can add more action instead of showsomething if you have several links

    }
    //close database.
    }
?>

你需要分离你的代码,否则如果它变得更复杂,就会一团糟。HTML代码必须仅在showfunctions.php中,例如在调用操作的函数中


代码没有经过测试,但我认为它会起作用。这段代码在没有javascript的情况下也可以工作,但是它只会重新加载页面。

为此,您必须使用
jQuery$.post()

首先,您必须创建php文件来处理您的数据

例如,让我们使用以下内容创建文件
query.php

<?php
if(isset($_POST['telefon_Search'])) {
    require 'connectdb.php';
    $telefon_Search =  $connect_DB->real_escape_string($_POST['telefon_Search']);
    $sql = "SELECT * FROM elever WHERE Telefon = '$telefon_Search'";
    $resultSet = $connect_DB->query($sql);

    if($resultSet->num_rows > 0) {
        $row = $resultSet->fetch_assoc();
        echo json_encode($row);
    }
}
完整的html将如下所示:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="style2.css?<?php echo time(); ?>" />
    <title></title>
</head>
<body>
    <table id="telefon_tabell" class="bokssvar_tabell">
        <tr>
            <td>Telefon:</td>
        </tr>
        <tr>
            <td><input type="text" name="telefon_Search" id="telefon_Input" maxlength=8"><br></td>
        </tr>
        <tr>
            <td><button name ="btn_checkTelefon" id="sjekkTelefon">Sjekk</button></td>
        </tr>
        <div id="d1"></div>
    </table>
    <table id="opplysninger_tabell" class="bokssvartabell">
        <tr>
            <td>Fornavn:</td>
            <td>Etternavn:</td>
        </tr>
        <tr>
            <td><input type="text" name="Fornavn" disabled id="check_Fornavn"></td>
            <td><input type="text" name="Etternavn" disabled id="check_Etternavn"></td>
        </tr>
    </table>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
    $('#sjekkTelefon').click(function (){    
        $.post('query.php', { telefon_Search : $('#telefon_Input').val() }, function (data){
            $('#check_Fornavn').val(data.Fornavn);
            $('#check_Etternavn').val(data.Etternavn);
        });
    });
</script>
</body>
</html>


你必须使用
jQuery$.post()
函数你必须使用ajax来实现这一点..可能重复使用ajax获取值。好吧,我相信我必须使用jQuery,但我不知道如何在我的代码中实现这一点。有人能帮我吗?为了便于理解,最好使用我使用的名称。我是否必须删除代码中的所有回音javascript?或者我可以保持一切原样,只添加AJAX吗?@Nniouz您需要使用json_encode才能将数据发送到javascript。或者你可以直接使用load而不是post,然后留下它是怎样的一秒钟,我将尝试为PHP创建通用函数。你有时间查看我的代码并编辑它,以便我更容易理解吗?因为我真的不知道在这里该做什么。我已经被困了好几天了,哈哈,把它留给ZeJur吧:P如果($_GET[“index.php?action”])在代码中对这样的特定代码片段有操作,你可以使用load而不是post。它必须是按钮类型,而不是submit。否则我的其他元素就不起作用了。不管怎样,我该把这个密码放在哪里?对不起,我绝对没有希望了。。我应该把这些放在哪里?如果可能的话,你能使用和我一样的格式和名称吗?谢谢你的努力,但我不知道把这些放在哪里。如果你愿意,我可以存档我所有的文件,并发布一个链接?在10分钟内,我会给你完整的解决方案。抱歉,迟了答复。但是你测试过这个吗?它对你有用吗?我不能让它工作。我没有收到任何错误,但当我点击按钮时,绝对没有任何事情发生。我已经把代码读了好几遍,但我似乎不明白哪里出了问题。