Попытка связать заполненный выпадающий список PHP

#php #html #mysql #database

#php #HTML #mysql #База данных

Вопрос:

Как следует из названия, я пытаюсь связать заполненный выпадающий список с формой на другой странице.

Мой выпадающий список в настоящее время подключен к моей базе данных, в которой отображаются адреса 6 человек. Поэтому, когда пользователь выбирает, например, AddressID 3, он переводит их на следующую страницу (customerdetails.php ), который затем позволит им обновить форму, которая соответствующим образом обновит базу данных.

Мой текущий код выглядит следующим образом

 <?php
//adding the database connection
$username = "root";
$password = "";
$hostname = "localhost";

//connection to the databse
$dbhandle = mysql_connect ($hostname, $username, $password)
    or die ("Unable to Connect to MySQL");
echo "Connected to MySQL";

//selecting the database we want to work with
$selected = mysql_select_db("my_guitar_shop2", $dbhandle)
  or die("Could not select my_guitar_shop2");
?>
<p>AddressID:</p>    <br>

<?php
$sql = "SELECT addressID FROM addresses";
$result = mysql_query($sql);

echo "<select name='addressID' onchange = 'getAddressID(this)'>";

while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['addressID'] ."'>" . $row['addressID']   ."</option>";
}
    echo "</select>";

?>
  

Теперь на customerdetails.php страница, на которой у меня есть код:

 <?php
$adrresIDSelected = $_GET['addressID'];
?>
  

Ни за что на свете я, кажется, не могу соединить 2 страницы вместе.

Я где-нибудь рядом с правильным путем? Я бы предпочел не использовать javascript, поскольку у меня нет предварительных знаний об этом.

Заранее большое спасибо

ОБНОВИТЬ customerdetails.php страницу

 <?php
 //adding the database connection
 $username = "root";
 $password = "";
 $hostname = "localhost";

 //connection to the databse
 $dbhandle = mysql_connect ($hostname, $username, $password)
    or die ("Unable to Connect to MySQL");
 echo "Connected to MySQL";

 //selecting the database we want to work with
 $selected = mysql_select_db("my_guitar_shop2", $dbhandle)
   or die("Could not select my_guitar_shop2");
 ?>

 <?php
   $addrresIDSelected = $_GET['addressID'];
 ?>
  

Контактная форма

 <form class="form">

    <p class="first">
                    <label for="name">FirstLine</label>
        <input type="text" name="firstline" id="first"  />

    </p>

    <p class="second">
                    <label for="email">SecondLine</label>
        <input type="text" name="secondline" id="second"  />

    </p>

    <p class="city">
                    <label for="web">City</label>
        <input type="text" name="city" id="web"  />

    </p>        

    <p class="state">
                    <label for="web">State</label>
        <input type="text" name="state" id="web"  />

    </p>    

            <p class="zip">
                    <label for="web">Zip Code</label>
                    <input type="number" name="zip" id="web" />

    </p>    

    <p class="update">
        <input type="button" value="Update" />
    </p>
            <p class="remove">
        <input type="button" value="Remove" />
    </p>
</form>
  

Комментарии:

1. Что делает функция Javascript getAddressID() ?

2. Кажется, ничего!! Я могу выбрать свой предпочтительный AddressID, но после нажатия на него я не попадаю в customerdetails.php страница

3. Реализована ли у вас эта функция? Если да, опубликуйте его исходный код.

4. <скрипт> функция getAddressID (опция) { var AddressID = option.value; окно. location.replace («<your_domain>/customerdetails.php?AddressID =» AddressID); } </script>

5. Это код. Теперь он ссылается на следующую страницу, но выдает мне ошибку access forbidden (доступ запрещен)

Ответ №1:

Первое решение (без Javascript)

Для решения без Javascript вам нужно будет использовать элемент select внутри form , а также использовать кнопку отправки, чтобы отправить заполненную / выбранную в форме информацию на нужную страницу:

 ...
<form action="customerdetails.php" method="get">
<select name="addressID">
<?php
$sql = "SELECT addressID FROM addresses";
$result = mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['addressID'] ."'>" . $row['addressID']   ."</option>";
}

?>
</select>
<input type="submit" value="Take me to the other page">
</form>
...
  

ОБНОВЛЕНИЕ — Второе решение (с Javascript)

Для использования getAddressID функции Javascript для отправки идентификатора вместо использования формы вам потребуется немного обновить функцию:

 <script>
function getAddressID (option) {
    var addressID = option.value;
    // you do not need the <your_domain> prefix here, as probably both your php scripts are on the same server/domain and same folder
    window.location.replace ("customerdetails.php?addressID ="   addressID);
    //-----------------------------------------------------^
    // Extra space must be removed!
}
</script>
  

Комментарии:

1. И этот метод по-прежнему позволяет мне подключиться к выбранному мной адресу? извините, я надеюсь, что в моих словах есть какой-то смысл. Я совсем новичок в этом!!!

2. Просто попробуйте оба решения и посмотрите, что получится. Первый — это стандартная версия использования форм в HTML. Во втором решении вам просто не нужен префикс <your_domain> .

3. Я пробовал оба, но, похоже, мне больше нравится javascript. единственная проблема, с которой я сталкиваюсь сейчас, заключается в том, что на customerdetails.php страница, на которой я получаю неопределенный индекс: ошибка AddressID.

4. Пожалуйста, обновите свой вопрос полным исходным кодом customerdetails.php .

5. Пожалуйста, посмотрите обновление в моем ответе (тело функции Javascript). Перед = знаком есть лишний пробел, который необходимо удалить.