• 14-12-2023, 04:48:25
    #1
    2 gündür cebelleşiyorum. Bir checkbox yaptım ve her seçilen seçeneğide aynı tabloda farklı sütunlara ekliyorum. sorunsuz çalışıyor fakat benim sorunum değerleri tıklanma sırasına göre alması!!
    ekliyorum ama Alfabetik olarak alıyor. Örnek array = (F,C,A,B,E,D) ama verilen array (A,B,C,D,E,F)
    ben soruma bir yanıt buldum
    https://stackoverflow.com/questions/...election-order
    En altta verilen cevapla javascript ekleyince seçim istediğim gibi oluyor ama bunu php değişkenine ordanda veritabanına nasıl eklerim bilmiyorum. Yardımcı olursanız sevinirim.
    <?php  
    if($_SERVER["REQUEST_METHOD"] == "POST"){
    if(isset($_POST['data'])){
    if($_POST)
    {
    $subjects = implode(',', $_POST['data']);
    $subjectsx = explode(',', $subjects);
    echo $subjectsx[0].$subjectsx[1].$subjectsx[2]."<br />";
    $ekle = mysql_query("UPDATE yorum SET kategori = '$subjectsx[0]', kategori1 = '$subjectsx[1]', kategori2 = '$subjectsx[2]', kategori3 = '$subjectsx[3]', kategori4 = '$subjectsx[4]' Where id  ='$sid'");
    }  
    }
    }
    ?>
    //input bu şekilde
    <input class="messageCheckbox" id="myCheck<?=$say;?>" type="checkbox" name="data[]" value="<?=$row["tr"];?>" alt="<?=$row["tr"];?>" onclick="myFunction<?=$say;?>('<?=$row["tr"];?>')"><label style="cursor: pointer;"><?=$row["title"];?></label></div></td><?php } ?>
  • 14-12-2023, 05:04:02
    #2
    <form id="myForm">
        <?php
        foreach ($rows as $say => $row) {
            echo '<div class="checkboxDiv">';
            echo '<input class="messageCheckbox" id="myCheck'.$say.'" type="checkbox" name="data[]" value="'.$row["tr"].'" alt="'.$row["tr"].'" data-index="'.$say.'" onclick="myFunction'.$say.'(\''.$row["tr"].'\')">';
            echo '<label style="cursor: pointer;">'.$row["title"].'</label></div>';
        }
        ?>
        <button type="button" id="submitBtn">Gönder</button>
    </form>
    
    <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
    <script>
        $(document).ready(function() {
            var clickedCheckboxes = [];
    
            $('.messageCheckbox').on('click', function() {
                var index = $(this).data('index');
    
                // Eğer daha önce tıklanan checkbox'ın index'i kaydedilmediyse, kaydet
                if (clickedCheckboxes.indexOf(index) === -1) {
                    clickedCheckboxes.push(index);
                }
    
                // Sıralama işlemini gerçekleştir
                clickedCheckboxes.forEach(function(clickedIndex, i) {
                    var checkbox = $('.messageCheckbox[data-index="' + clickedIndex + '"]');
                    checkbox.prop('name', 'data[' + i + ']');
                });
            });
    
            $('#submitBtn').on('click', function() {
                // AJAX isteği gönder
                $.ajax({
                    type: 'POST',
                    url: 'ajax.php',
                    data: $('#myForm').serialize(),
                    success: function(response) {
                        console.log(response);
                        // İsteğin başarılı olması durumunda yapılacak işlemler
                    },
                    error: function(error) {
                        console.error(error);
                        // Hata durumunda yapılacak işlemler
                    }
                });
            });
        });
    </script>
    Ajax.php içeriği
    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (isset($_POST['data'])) {
            $subjectsx = $_POST['data'];
    
            // $sid nereye bağlıysa tekrar bağlamayı unutmayın
            $ekle = mysql_query("UPDATE yorum SET kategori = '$subjectsx[0]', kategori1 = '$subjectsx[1]', kategori2 = '$subjectsx[2]', kategori3 = '$subjectsx[3]', kategori4 = '$subjectsx[4]' Where id = '$sid'");
        }
    }
  • 14-12-2023, 05:25:45
    #3
    Cevabınız ve ilginiz için tşk ediyorum. Malesef çalışmadı. Birde bunun ne anlama geldiğini bilmiyorum. foreach ($rows as $say => $row) {
    Belki kodları eksik verdiğim için yanlış anlaşılma olabilir. $Row dizisi kategorileri sıralamak içindi. $say da sayı dizesi.
    <?php
    $say = -1; 
    $qry = "SELECT * FROM kat order by title";
    $execute = mysql_query($qry) or die(mysql_error());
    while($row = mysql_fetch_array($execute)){
      $say++;
    if($say%3==0){    ?>// her 3 veride gözükmesi için 
    <tr class="group_data">
    <? } ?>
    <input class="messageCheckbox" id="myCheck<?=$say;?>" type="checkbox" name="data[]" value="<?=$row["tr"];?>" alt="<?=$row["tr"];?>" onclick="myFunction<?=$say;?>('<?=$row["tr"];?>')"><label style="cursor: pointer;"><?=$row["title"];?></label></div></td><?php } ?>
    Birde bu onclick="myFunction<?=$say;?>('<?=$row["tr"];?>')"> gibi veriler örnek urldeki gibi olması içindi. anlık olarak seçtiklerim ekrana yansıyordu. tek sorun veritabanına nasıl kaydedeceğimi bilmiyorum.
  • 14-12-2023, 21:01:43
    #4
    Ücretli yardım etmek isteyen arkadaşlarda yazabilir