2017-02-09 3 views
0

Ich muss zwei verschiedene Eingabewerte einzeln ändern/aktualisieren. Das Problem ist, wie sie $_GET den gleichen Wert sie nicht separat aktualisieren und sie erhalten beide den Wert, der die Eingabeaktualisierungsabfrage ausführt (wegen des gleichen Anfragewerts .. ich weiß). Meine Frage ist, wie kann ich sie einzeln aktualisieren, da sie nicht denselben Wert für die Abfrage erhalten. Muss ich die $_REQUEST ändern oder muss ich if() Aussage machen? PS meines Codebeispiel ist alles zusammen und wenig ab, aber nicht in dem real php failesWie kann ich PHP-Abfrage mehrere verschiedene Werte einzeln aktualisieren?

<td class="stock" id="'.$r["product_id"].'">'.STRIPSLASHES($r["product_in_stock"]).'</td> 
<td class="test" id="'.$r["product_id"].'"><font size=+2><b>'.$r["product_s_desc"].'</b></font></td> 


    <script> 
var x; 
var h = 0; // blur fires multiple times, use h to count and fire once 
var url = 'up.php'; 

$(".test").on('click', function(d) { 
    d.stopPropagation(); 
    var x = $(d.target); 
    x.html('<input id="edit" style="width: 40px;" value="'+x.text()+'">'); 
    var this_id = x.context.id; 

    $("#edit").on('blur', function(d) { 
     if (h < 1) { 
      h = h+1; 
      d.stopPropagation(); 

      $(d.target.parentElement).text(d.target.value); 

      $.get(url, {id: this_id, value: d.target.value}) 
       .done(function(d){ if(d == undefined || d != 1) { alert('Something went wrong, check your data and results. '+d);}}) 

      $("#edit").off('blur'); 
     } 

     return false; 
    }); 
    h = 0; 
}); 
</script> 

<script> 
var x; 
var h = 0; // blur fires multiple times, use h to count and fire once 
var url = 'up.php'; 

$(".stock").on('click', function(d) { 
    d.stopPropagation(); 
    var x = $(d.target); 
    x.html('<input id="edit2" style="width: 40px;" value="'+x.text()+'">'); 
    var this_id = x.context.id; 

    $("#edit2").on('blur', function(d) { 
     if (h < 1) { 
      h = h+1; 
      d.stopPropagation(); 

      $(d.target.parentElement).text(d.target.value); 

      $.get(url, {id: this_id, value: d.target.value}) 
       .done(function(d){ if(d == undefined || d != 1) { alert('Something went wrong, check your data and results. '+d);}}) 
       .fail(function(d){ alert('error');}); 
      $("#edit2").off('blur'); 
     } 

     return false; 
    }); 
    h = 0; 
}); 
</script> 


require_once('db.php'); 


    $q2= 'UPDATE prestashop.ps_stock_available SET quantity = %d WHERE id_product = %d'; 
    $q= 'UPDATE prestashop.ps_product SET location = '%s' WHERE id_product = %d'; 



    $sql = sprintf($q, $_REQUEST['value'], $_REQUEST['id']); 
    $sql2 = sprintf($q2, $_REQUEST['value'], $_REQUEST['id']); 

    $rs=$ib->exec($sql); 
    $rs=$ib->exec($sql2); 
    if (PEAR::isError($rs)) throw new Exception ("DB Request: ". $rs->getMessage()); 

    die("1"); // exit and return 1 on success 

} catch (Exception $e) { 
    print $e->getMessage(); 
} 
+0

Vielleicht, wenn Sie gelernt haben, wie Sie den Javascript-Debugger in Ihrem Browser verwenden, können Sie Ihre eigenen Fragen beantworten. – RiggsFolly

+0

Was macht "STRIPSLASHES" hier? Da ist etwas sofort verdächtig. – tadman

+1

** WARNUNG **: Dies hat einige schwerwiegende [SQL-Injektion Bugs] (http://bobby-tables.com/), weil beliebige Benutzerdaten innerhalb der Abfrage verwendet wird. Wann immer möglich, verwenden Sie ** vorbereitete Aussagen **. Diese sind ziemlich einfach in [mysqli'] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [PDO] (http://php.net/manual/ en/pdo.prepared-statements.php) wo alle vom Benutzer angegebenen Daten mit einem '?' oder ': name'-Indikator angegeben werden, der später mit' bind_param' oder 'execute' gefüllt wird, je nachdem, welchen du verwendest. ** NIEMALS ** $ _REQUEST' Daten direkt in Ihre Anfrage einfügen. – tadman

Antwort

0

Ich weiß, dass dies eine unsichere Methode ist, aber ich habe es funktioniert mit diffrent Anforderungswert und wenn (leer)

Verwandte Themen