2017-05-02 4 views
-2

Hier sind meine Daten, die ich pro Klick Radio erhöhen möchte.Möchten Sie den Wert des Zählers pro Klick des Optionsfelds erhöhen

<span class="pull-right negative"><?= $positive ?></span> 
<span class="pull-right positive"><?= $negative ?></span> 
function reviewsub() { 
    if ($('input[type=radio]:checked').val() == 0){ 
    } else { 
    } 
<?= $form->field($model, 'review')->inline() ->radioList([1 => 'Yes', 0 => 'No'],[ 'onclick' => "reviewsub()"])->label(false) ?> 

dynamisch die Werte durch Variable durch diese Spanne Felder immer ich bin. Aber ich möchte die Werte onclick erhöhen, ohne Seite neu zu laden. Bitte helfen

+4

Sind diese Werte numerisch? Es würde helfen, den tatsächlichen HTML statt Spaghetti PHP zu sehen. Wo ist der Radioknopf? Fügen Sie den JS-Code hinzu, mit dem Sie versucht haben, das Problem zu lösen. –

+0

geben Sie bitte Ihre js Code für Schrittmaß – Muzamil301

+0

Funktion reviewsub() { if ($ ('input [type = radio]: checked'). Val() == 0) { } else { } Hier – rehan

Antwort

0

Eine Frage, müssen Sie auch die Zahl auf der PHP-Seite auch aktualisieren? Wie in mySQL? Dies würde POST/GET-Anforderungen erfordern, wenn Sie auf die Schaltfläche klicken.

Eine einfache Antwort wäre, einen Listener für Klicks zu erstellen. (Und das erfordert die Radiobuttons eine ID geben

ersten zwei JS Variablen erstellen;..

var pozitif = <?php echo $positive; ?>; 
var negatif = <?php echo $negatif; ?>; 

Dann zwei Schaltflächen erstellen

<button onclick="pozitif++; $('#pozitif').html(pozitif);"> 
<button onclick="negatif++; $('#negatif').html(negatif);"> 

Voila

0

Sie können dinamically die Aktualisierung angezeigte Zahl in JS wie von Arda vorgeschlagen

Auf der anderen Seite, wenn Sie möchten die Daten im Backend zu gespeichert aktualisieren, ohne die Seite neu zu laden Sie es in jQuery mit einem Hörer und einem AJAX-Aufruf heißt

$val = 0; 
$("input[type=radio]").click(function(){ 
       if($(this).hasClass("negative")){ 
        $val--; 
       } else { 
        $val++; 
       } 
       $("#counter").html($val); 

       $.ajax({url: "update_in_backend.php",type: "POST", 
     data: {val: $val}, success: function(result){ 
        console.log("Updated data in backend"); 
       }}); 
       }); 

Der obige Code tun könnte (erfordert Einbeziehung von jQuery) fügt ein Zuhörer die Klicken Sie auf das Ereignis auf den Optionsschaltflächen. Es hat den Vorteil, dass keine Angabe von onclick in html erforderlich ist. Der Aufruf von $ .ajax sendet eine Postanforderung an ein ideales PHP-Dokument (update_in_backend.php) mit dem Aktualisierungswert als Argument.

Sie können die Aktualisierung des angezeigten Werts für den Benutzer innerhalb des Erfolgsrückrufs verschieben, um die visualisierten Benutzerdaten nur zu aktualisieren, wenn sie tatsächlich serverseitig aktualisiert wurden.

+0

Kannst du die Funktionsweise deines Codes erklären? –

Verwandte Themen