Jeg tror du gør det mere kompliceret end du behøver. Hvis du kun skal skal skifte navn og id, når man vælger en partner i select-menuen, kan du klare det rimeligt simpelt.
Øverst i din php-fil henter du alle partnere der hører til en bestemt bruger
- // Er $userid blevet escapet?
- $query = "SELECT id, name FROM dta_partners WHERE userid='$userid'";
- $result = $objconn->query($query);
- $partners = array();
- while ($row = $result->fetch_assoc()) {
- $row['name'] = utf8_encode($row['name']);
- $partners[] = $row;
- }
Når du skal outputte din form, kan du bruge følgende
- <form action="" method="post">
- <label for="partnerid">Partner</label>
- <select name="partnerid" id="partnerid">
- <option value="0">Pick a partner</option>
- <?php foreach ($partners as $partner): ?>
- <option value="<?=$partner['id']?>"><?=strip_tags($partner['name'])?></option>
- <?php endforeach; ?>
- </select>
- <br/><br/>
-
- <div id="partneredit">
- <label for="name">Partner name</label>
- <input type="text" value="" name="name" id="name" />
- <input type="submit" name="submit" class="submit" value="Edit partner" />
- </div>
- </form>
og nederst i din htmlkode, kan du så tilføje noget javascript der opdaterer tekstboksen med partnernavnet, på den valgte partner
- <script>
- $(document).ready(function () {
- var partnerSelect = $('#partnerid'),
- partnerEdit = $('#partneredit'),
- nameInput = $('#name');
-
- partnerEdit.hide();
- partnerSelect.on('change', function (e) {
- var value = parseInt(partnerSelect.val(), 10),
- todo = value > 0 ? 'show' : 'hide',
- selectedPartnerName = partnerSelect.find(':selected').text();
-
- partnerEdit[todo]();
-
- if (value > 0) {
- nameInput.attr('value', selectedPartnerName);
- }
- });
- });
- </script>
Når man poster formen vil Partner Id'en være tilgængelig i $_POST['partnerid'] og det nye partnernavn i $_POST['name']