Дать имя функции в форме - PullRequest
       2

Дать имя функции в форме

0 голосов
/ 22 сентября 2019

Я хотел бы назвать функцию devtest () в форме как разработчик, поэтому, когда пользователь выбирает разработчика, она отправляется вместе с формой.

Функция, которая у меня есть, это и она работает, онавозвращает результаты, когда вы выбираете элемент из выпадающего списка:

function devtest()
{
$db = db();

$stmt = $db->prepare('SELECT developer FROM developers');
$result = $stmt->execute();
?>
<select name="Developer">
<?php
while ($row = $result->fetchArray()) {
$dev = $row['developer'];
    echo "<option value='" . $row['developer'] ."'>" . $row['developer'] ."</option>";
}
echo "</select>";
}

на самой странице, где я вызываю функцию, и имею форму, которую я имею

<form method="POST">
        Enter game name:
        <input type="text" name="name">
        <br>
        Enter Price 
        <input type="text" name="price">
        <br>
        Enter Platform
        <input type="text" name="platform">
        <br>
        Select Developer
        <!--<input type="text" name="developer">-->
        <?php
        devtest();
        ?>
        <br>
        Enter quantity
        <input type="text" name="quantity">
        <br>
        Enter shipping
        <input type="text" name="shipping">
        <br>
        <input type="submit" value="save">
    </form>

Эта форма переходит к этой функции

function addgame()
{
    #$devtest = devtest();
    $db = db();
    #function to add the form data from the add game page to the database
    if(!empty($_POST['name']) && !empty($_POST['price']) && !empty($_POST['platform']) && !empty($_POST['quantity'])&& !empty($_POST['shipping'])){
        $name = SQLite3::escapeString($_POST['name']);
        $price = SQLite3::escapeString($_POST['price']);
        $platform = SQLite3::escapeString($_POST['platform']);
        $developer = SQLite3::escapeString($_POST['Developer']);
        #$developer = devtest();
        $quantity = SQLite3::escapeString($_POST['quantity']);
        $shipping = SQLite3::escapeString($_POST['shipping']);
        if (strlen($name) < 2)
        {
            echo("name be 2 char or longer");
        }
        if (!is_numeric($price))
        {
            echo("price must be numbers only");
        }
        if (strlen($platform) < 2)
        {
            echo("Platform must be 2 char or longer");
        }
        if (strlen($quantity) < 1)
        {
            echo("quantity must be more than 1");
        }
        /*if (strlen($shipping) < 9)
        {
            echo("shipping must be more than $9");
        }*/

        else
        {
        $stmt = $db->prepare("INSERT INTO game (name , price , platform , Developer, quantity, shipping) VALUES ('$name' , '$price' , '$platform' , '$developer', '$quantity' , '$shipping')");
        $result = $stmt->execute();

        }
    }
    else
    {
        echo "Fill in all form fields";
    }
}

Не используя функцию devtest () в форме и используя все работает нормально, я пытаюсь изменить его, чтобы те из списка можно было выбрать, но я не уверен, как передать ихвыберите через форму.

1 Ответ

0 голосов
/ 22 сентября 2019

Вы можете отправить данные в javascript и написать свою функцию в js, чтобы добавить выпадающий список везде, где вам нужно:

...
<script>
var developer = []
</script>
.
.
.
<php>
    while ($row = $result->fetchArray()) {
?>
<script>
var developer[]=<?php echo $row['developer']; ?>
</script>
<?php
}
?>

js funtion:

<script>
function devtest(elementID){
   developer.forEach(index,item){
       $('#'+elementID).append('<select value="'+item+'">'+item+'</select>');
   }
}
</script>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...