MySQLI如何通过语言选择将表单插入数据库

时间:2018-03-11 12:18:29

标签: php mysqli

我遇到了表单方法的问题。

如何通过语言选择在不同的表中的数据库中插入表单值。 我在我的数据库中有一个名为article_en / articles_ro的表,当我选择select english时,我希望将值插入article_en

此外,当我选择语言时,它不会被选中。 如果我在输入中写入内容并选择一种语言,则输入将被清除。

PS:我是新手,我还在学习。

enter image description here

enter image description here

这是语言选择代码

<?php
define("LANG",$_GET['lang']);
include('../db.php');

function select_langs(){
    global $conn;
    echo'<h2 class="box-title">Select the language where you want to the article</h2>
        <select id="select_language">
        <option selected disabled hidden value=""></option>';
    $get_languages = mysqli_query($conn, "SELECT lang,title from `languages`") or die(mysqli_error($conn));

    while($row = mysqli_fetch_array($get_languages)){
        if($row['title'] == $_GET['lang']){
            echo'<option value="insert_article.php?lang='.$row['lang'].'" selected>'.$row['title'].'</option>'; 
        }
        else{
            echo'<option value="insert_article.php?lang='.$row['lang'].'">'.$row['title'].'</option>';
        }
    }
    echo'</select>';

}
?>

这是插入代码。

<?php 
include('./lang.php');
include('../db.php');
define("LANG",$_GET['lang']);
select_langs();

// extract data from form; store in variable
$title =  $_GET['title'];
$link = $_GET['link'];

if (!empty($title) and !empty($link ) and !empty($_GET['lang'])) {
    // Define the query to inser the song request
    $sql = "INSERT INTO `articles_".LANG."`(title , link)VALUES (".$title.", ".$link.")"; 
    if (mysqli_query($conn, $sql)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }

    mysqli_close($conn);

}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$("#select_language").bind("change",function(){var n=$(this).val();return""!=n&&(window.location=n),!1});
</script>
<form action="insert_article.php" method="get">
    <label id="first">title:</label><br/>
    <input type="text" name="title"><br/>
    <label id="first">link:</label><br/>
    <input type="text" name="link"><br/>
    <input type="submit" value="submit">
</form>

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您需要使用ajax将详细信息发送到php以将其插入您的数据库中。这更容易。

cpdef

insert.php

var select_language= document.getElementById("select_language").value;      
var title= document.getElementById("title").value;
var link= document.getElementById("link").value;

var data= {select_language: select_language,title: title,link:link};
$.ajax({
        type: "POST",
        url: "insert.php",
        data: data,
        cache: false,   

        success: function(html) 
        {              
                console.log (html);          
                alert("Success");
        },
          error: function (html) 
          {
              console.log (html);
              alert("Failure");

        }

    });

希望这会有所帮助。