2017-07-26 2 views
2

So versuche ich, ein SELECT-Element ein MYSQL-Datensatz jedes Mal aktualisieren, wenn die Auswahl geändert wird. Aber die einzige Möglichkeit, den PHP-Code erfolgreich zu triggern, ist eine Eingabe-Schaltfläche und nicht das, was unten gezeigt wird. Ich muss in der Lage sein, den PHP-Code mit der unsichtbaren Eingabe Submit auszulösen.Formular nicht korrekt senden

Der springende Punkt ist, PHP-Datensätze durch das select-Element und keine Schaltfläche zu aktualisieren.

<form id="signin-form_id" class="panel" method="POST" style="margin-bottom: 0px;"> 
 
    <div class="input-group"> 
 
     <span class="input-group-addon"> 
 
      Coin 
 
     </span> 
 
     <select class="form-control" name="cointype" onchange="this.form.submit()"> 
 
      <option value="0" selected>Bitcoin</option> 
 
      <option value="1">Litecoin</option>  
 
     </select> 
 
    </div> 
 
    <noscript><input type="submit" name="ReferralCoin"></noscript> 
 
</form>

Und die Submit-Button ist wohl ein POST-Ereignis in PHP hier gesehen auslösen: nicht über MYSQL Injection-Schwachstellen kommentieren Sie.

<?php 
if (isset($_POST['ReferralCoin'])) 
{ 
    $cointype = $_POST['cointype']; 
    if($cointype == "0") 
    { 
     $odb->exec("UPDATE users SET `coin` = '$cointype' WHERE `ID` = '$userid'"); 
    } 
    elseif($cointype == "1") 
    { 
     $odb->exec("UPDATE users SET `coin` = '$cointype' WHERE `ID` = '$userid'"); 
    } 
} 
?> 

Das Problem ist, wenn ich eine Eingabe-Taste zu verwenden, war es funktioniert gut und löst den PHP-POST-Code, aber wenn die unsichtbare Eingang mit eintragen nicht die PHP-POST-Code auslöst. Wenn jemand mir helfen kann, meinen Fehler zu finden, wird viel geschätzt!

+0

Zeigen Sie uns Ihre Js-Code auch – user3284463

+0

@ user3284463 Ich habe keine JS-Code, um mit diesem zu gehen, das ist alles, was dazu gehört. Fehle ich etwas mit Javascript? – TymeBomb

+0

Wenn Sie nicht eine Senden-Schaltfläche verwenden, um den Formularpost auszulösen, was verwenden Sie dann? Haben Sie JavaScript-Code, der auf das Änderungsereignis 'select'-Element reagiert, um das Formular zu senden? Wenn Sie möchten, dass das Formular gesendet wird, muss es * etwas * einreichen. – David

Antwort

3

Sie sind für den Submit-Button Überprüfung hier:

if (isset($_POST['ReferralCoin'])) 

Aber wenn der Submit-Button wird geklickt nicht (da Sie das Formular über JavaScript-Code stattdessen sind Absenden), dann ist es nicht inbegriffen in den POST-Werten. Also $_POST['ReferralCoin'] ist nicht eingestellt.

Sie müssten den Scheck vollständig entfernen oder einen anderen Zustand prüfen. (Z. B. ob $_POST['cointype'] eingestellt ist.)

+0

Arbeitete! Vielen Dank. einfacher Fehler wie immer: / – TymeBomb