• 18-03-2023, 20:33:27
    #1
    Selam,

    Dinamik input ve textarea kullanıyorum. Sınırısz olduğu için sayısı belli değil.
    input name="inputadi[]" şeklinde.
    textarea name="textareaname[]" şeklinde.

    diyelim ki bunlardan inputtan 5 adet textareadan 2 adet dinamik oluşturdum ve form içinde sıralamasını js ile sürekle bırak ile birini üste birini alta taşıdım ve formu submit ettim.

    Formdaki son sıralanmış haline göre nasıl hepsini tek bir array olarak alabilirim?
  • 18-03-2023, 20:42:22
    #2
    buddy adlı üyeden alıntı: mesajı görüntüle
    Selam,

    Dinamik input ve textarea kullanıyorum. Sınırısz olduğu için sayısı belli değil.
    input name="inputadi[]" şeklinde.
    textarea name="textareaname[]" şeklinde.

    diyelim ki bunlardan inputtan 5 adet textareadan 2 adet dinamik oluşturdum ve form içinde sıralamasını js ile sürekle bırak ile birini üste birini alta taşıdım ve formu submit ettim.

    Formdaki son sıralanmış haline göre nasıl hepsini tek bir array olarak alabilirim?
    Onu js ile drag drop olayında input ismine order numarası ekleyerek çözebilirsiniz. Php ile sürükle bırak kısmı alakalı değil.
  • 18-03-2023, 20:42:28
    #3
    Formdaki tüm verileri tek bir array olarak almak için, öncelikle tüm input ve textarea elementlerini bir JavaScript dizisinde toplamanız gerekir. Bu diziyi, sıralamayı değiştirdiğinizde güncellemelisiniz.
    Örneğin, HTML kodunuz şöyle olabilir:
    <form id="myForm">
      <input type="text" name="inputadi[]" value="input1">
      <textarea name="textareaname[]">textarea1</textarea>
      <input type="text" name="inputadi[]" value="input2">
      <textarea name="textareaname[]">textarea2</textarea>
      <input type="text" name="inputadi[]" value="input3">
      <textarea name="textareaname[]">textarea3</textarea>
    </form>
    JavaScript kodu aşağıdaki gibi olabilir:
    const form = document.getElementById("myForm");
    const elements = form.querySelectorAll("input[name='inputadi[]'], textarea[name='textareaname[]']");
    let formData = [];
    
    elements.forEach(element => {
      formData.push(element.value);
    });
    
    console.log(formData);
    Bu kod, formdaki tüm input ve textarea elementlerini toplar ve formData adlı bir diziye ekler. Bu diziyi daha sonra kullanabilirsiniz. Eğer sıralamayı değiştirirseniz, JavaScript kodunu güncellemeyi unutmayın.
  • 18-03-2023, 20:53:44
    #4
    javascript ile her sıralamayı değiştirdiğinde veritabanında da bunu update edersen çözersin
  • 18-03-2023, 22:18:23
    #5
    phpc adlı üyeden alıntı: mesajı görüntüle
    Onu js ile drag drop olayında input ismine order numarası ekleyerek çözebilirsiniz. Php ile sürükle bırak kısmı alakalı değil.
    hocam nasıl küçük bir örnek verebilrmisiniz yada bununla ilgili kaynak?
  • 19-03-2023, 00:05:40
    #6
    buddy adlı üyeden alıntı: mesajı görüntüle
    hocam nasıl küçük bir örnek verebilrmisiniz yada bununla ilgili kaynak?
    Ne yazık ki bu yüklü bir iş olabileceğinden ve elimde hazır kod olmadığından bunu Google'dan halletmelisiniz. Hiç çözemezseniz ücretli olarak bana inceletebilirsiniz. JS uzmanı değilim. Ama bir şekilde belki çözerim.