• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

1 klik wstawia dane do 1szego inputa 2 klik wstawia do 2go inputa i wysyła

VPS Starter Arubacloud
0 głosów
221 wizyt
pytanie zadane 2 czerwca 2023 w JavaScript przez juuunior Początkujący (300 p.)
edycja 2 czerwca 2023 przez juuunior

Witam serdecznie Pasjonatów

Jestem w trakcje tworzenia segregacji wyświetlania wyników katalogów z bazy, ich kolejność jest uzależniona od wartości w wierszu bazy o nazwie 'symbol_systemowy',zrobiłem przenoszenie przyciskiem na pierwszą pozycję poprzez odczytanie największego nr i update z tym numerem +1 .

Teraz próbuję zrobić zamianę miejsc katalogów pomysł mam taki że jednym kliknięciem pobieram nr 'symbol_systemowy' pierwszego katalogu wrzucam do inputa form a drugim kliknięciem wrzucam nr drugiego 'symbol_systemowy' i wrzucam do drugiego inputa od razu wysyłam... odebrałbym to ifem w php i podmienił im 'symbol'.

Wyświetlanie wyników jest w pętli while zrobiłem pobranie nr 'symbol' przez kliknięcie (Zamień z ''class litera'') ale nie wiem jak wstawić dane w inputy i wysłać form.  

  <div class="card">
                       
    <div class="up">
    <img class="obrazek" src="https://bleble.com/pl/<?php echo $row['sciezka']?>.jpg">
       <?php echo '<div class="edytuj">'.'<a href="panel.php?co=katalogi_pozycjonowanie&updateprodukt='.$row['symbol_systemowy'].'">Przesuń na 1.poz</a>'."</div>";?>
       <div class="litera" onclick="sprawdz(<?php echo $row['symbol_systemowy'] ;?>)" id="<?php echo $row['symbol_systemowy'] ;?>" >Zamień z</div>
       <?php echo '<div class="wylacz">'.'<a href="panel.php?co=katalogi_pozycjonowanie&updatewylacz='.$row['symbol_systemowy'].'">Wyłącz</a>'."</div>";?>
    </div>

    <div class="down">
       <?php echo '<div class="textb">'.$row['nazwa']. '</div>'; ?>
       <?php echo '<div class="textb">'.$row['kolejnosc']. '</div>'; ?>
    </div>
  </div>
<?php  
  } 
?>

<form method="POST">
    S:<input type="text" name="source" id="source"><br>
    T:<input type="text" name="target" id="target"><br>
      <input type="submit" value="przesuń"><br>
 </form>
 <?php
  if (isset($_REQUEST['source']) && isset($_REQUEST['target'])) {
    $source = $_REQUEST['source'];
    $target = $_REQUEST['target'];
    echo "Przesuwam katalog z pola $source na pole $target";
  }

?>
<script>
    function sprawdz(e)
    {
        alert(e);
     //   let source = document.getElementById('source');
     //   let target = document.getElementById('target');
        

     //       if (source.value) { //jeżeli podano źródło
     //           target.value = e.currentTarget.id;
                
     //       } else { //jeżeli jeszcze nie ma źródła
     //           source.value = e.currentTarget.id;
     //       }
   
    }

</script>    

    

 

1 odpowiedź

+1 głos
odpowiedź 3 czerwca 2023 przez VBService Ekspert (251,210 p.)
wybrane 5 czerwca 2023 przez juuunior
 
Najlepsza

Proponuje zapis, gdy jest source "pusty" to 1 klik przypisuje

if (! source.value) 

i proponuje dodać linie, która sprawdza czy 2 klik nie pochodzi z tego samego "Zamień z"

if (source.value !== e.dataset.id)

 

proponuje zamiast

<div class="litera" onclick="sprawdz(<?php echo $row['symbol_systemowy']; ?>)" id="<?php echo $row['symbol_systemowy']; ?>" >Zamień z</div>

zapisać

    <div class="litera">
      <a href="#" data-id="<?php echo $row['symbol_systemowy']; ?>" onclick="sprawdz(this)">Zamień z</a>
    </div>


całość proponowanych zmian: on-line.

 

 

P.S możesz spróbować użyć Event Delegation

[ on-line ]

      <div class="litera">
        <a href="#" data-id="<?php echo $row['symbol_systemowy']; ?>">Zamień z</a>
      </div>

 

1
komentarz 5 czerwca 2023 przez juuunior Początkujący (300 p.)

dzięki VBService

Twoje cenne rady bardzo mi pomogły...  działa :)

komentarz 7 czerwca 2023 przez VBService Ekspert (251,210 p.)

Jeszcze dodam

taki zapis

<a href="#">

nie określamy żadnej konkretnej kotwicy, więc link ten działa jako rodzaj pustego linku, m. in. domyślną "akcją" dla przeglądarek w takiej sytuacji jest przewinięcie strony "do góry", aby temu zapobiec można użyć zapisu w kodzie javascript (preventDefault())

e.preventDefault();

a w html-u zmienić zapis dla onclick na

onclick="sprawdz(event)"

a w js

e.target.dataset.id

 

całość on-line.

Podobne pytania

0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 2 maja 2019 w PHP przez Webmaster123 Początkujący (440 p.)
0 głosów
3 odpowiedzi 6,657 wizyt
0 głosów
2 odpowiedzi 193 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...