Form döngü db ekleme + javascript değiştiren

3 Cevap php

Temelde ben tüm kodu yeniden önce bunu yapmak için daha kolay bir yolu olup olmadığını kontrol etmeniz gerekir. Ben her giriş yüzden kolay yerleştirilmesi için php aracılığıyla döngü can ucunda [] 's adında var oldukça büyük bir form var.

            <input type="hidden" name="currentdate[]" value="<?php echo date('mdY'); ?>">
                <td><input style="width: 50px" type="text" name="jackname[]" /></td>
                <td><input style="width: 20px" type="text" name="jackkey[]" /></td>
                <td><input style="width: 50px" type="text" name="jackbeg[]" /></td>
                <td><input style="width: 50px" type="text" name="jackend[]" /></td>
                <td><input style="width: 50px" type="text" name="jackbegveh" /></td>
                <td><input style="width: 50px" type="text" name="jackbegmon[]" /></td>
                <td><input style="width: 50px" type="text" name="jackendveh" /></td>
                <td><input style="width: 50px" type="text" name="jackendmon[]" /></td>
                <td><input style="width: 50px" type="text" name="jacktx" disabled /></td>

Orada daha epeyce alanlar vardır ama fikir olsun. Daha sonra kullanmak

foreach ($_POST['jackname'] as $row=>$name) 
{ 
    $jackname = $name;
    $date = $_POST['currentdate'][$row];
    $jackkey = $_POST['jackkey'][$row];
    $jackbeg = $_POST['jackbeg'][$row];
    $jackend = $_POST['jackend'][$row];
    $jackbegveh = $_POST['jackbegveh'][$row];
    $jackbegmon = $_POST['jackbegmon'][$row];
    $jackendveh = $_POST['jackendveh'][$row];
    $jackendmon = $_POST['jackendmon'][$row];
    $jacktx = $_POST['jacktx'][$row];
    if ($jacktx == '') { 
        $jacktx = '0'; 
    }

    if (empty($jackkey)) {
        echo 'Skipped empty! <br />';

    } else {
        mysql_query("INSERT INTO `ticket_counts_jackson` VALUES('', '" . $date . "', '" . $jackname . "', '" . $jackkey . "', '" . $jackbeg . "', '" . $jackend . "', '" . $jackbegveh . "', '" . $jackbegmon . "', '" . $jackendveh . "', '" . $jackendmon . "', '" . $jacktx . "')", $mysql_link) or die(mysql_error()); 
        echo 'Added the info the db! <br />';

    }
} 

Ben forma döngü yukarıda kullanmak ve veritabanına eklemek. Şimdi ana soru için. Ben de biraz matematik yapmak için bazı javascript eklemek istiyorum. Temelde ($jackendveh - $jackbegveh) - ($jackendmon - $jackbegmon) ve jacktx görüntülenen ki var. Şu anda matematik hesaplamalarında ekleme bilmek tek yolu benzersiz bir ad, her girişi yeniden adlandırın ve sonra 8 ekler 1 insert benim insert yeniden yazmak için.

3 Cevap

Öyle gibi her giriş alanına bir kimlik eklersiniz

        <td><input id="jackname" style="width: 50px" type="text" name="jackname[]" /></td>
        <td><input id="jackkey" style="width: 20px" type="text" name="jackkey[]" /></td>
        <td><input id="jackbeg" style="width: 50px" type="text" name="jackbeg[]" /></td>
        <td><input id="jackend" style="width: 50px" type="text" name="jackend[]" /></td>
        <td><input id="jackbegveh" style="width: 50px" type="text" name="jackbegveh" /></td>
        <td><input id="jackname" style="width: 50px" type="text" name="jackbegmon[]" /></td>
        <td><input id="jackname" style="width: 50px" type="text" name="jackendveh" /></td>
        <td><input id="jackendmon" style="width: 50px" type="text" name="jackendmon[]" /></td>
        <td><input id="jacktx" style="width: 50px" type="text" name="jacktx" disabled /></td>

ve sonra jQuery kullanarak bunu gibi yapmak gerekir

$(document).ready(function(){
   $("input").change(function(){
      var value = $("#jackendveh").val() - $("#jackbegveh").val() - $("#jackendmon").val() - $("#jackbegmon").val();
      $("#jacktx").val(value);
   });
});

Ben bu basit olacağını düşünüyorum

// Function to save sql in array
function save_sql($table,$data,$ref)
    {
    if(!empty($data)) foreach($data as $k => $v) $str .= "$k = '$v',"; $str = substr($str,0,-1);
    $sql = "INSERT INTO $table SET $str";
    $run = mysql_query($sql) or die(mysql_error() . "-Ref# $ref");
    return $run;
    }
// Extract post arrays into variables
extract ($_POST);

foreach ($_POST['jackname'] as $row=>$name) 
{ 
    $jackname = $name;
    $date = $currentdate[$row];
    if ($jacktx[$row] == '') { 
        $jacktx[$row] = '0'; 
    }

    if (empty($jackkey)) {
        echo 'Skipped empty! <br />';

    } else {
    save_sql("ticket_counts_jackson",array('date'=>$currentdata[$row],
                                            'jackname'=>$name,'jackkey'=>$jackkey[$row],
                                            'jackbeg'=>$jackbeg[$row], 'jackend'=>$jackend[$row])
                                            ,"An error while process your request");
    }
} 

Ben Travis @ aldı ve şöyle benim durum ile çalışmak için onun jquery değiştirilmiştir:

<script type="text/javascript">
$(document).ready(function(){
       $("input").change(function(){
              var value = $("#jackendveh").val() - $("#jackbegveh").val();
              var valuetwo = $("#jackendmon").val() - $("#jackbegmon").val();
              var valuethree = value - valuetwo;
              $("#jacktx").val(valuethree);
           });
        });
</script>

Yani sadece her form bölümünde id benzersiz var ve her biri için ayrı jQuery fonksiyonları var ve benim orijinal sql döngü kullanmak olacaktır.