2011-01-03 15 views
0

Hi anzeigen. Ich brauche Hilfe mit diesem Codeabschnitt.Wie kann ich den Wert mit Ajax

Was ich tun möchte ist; Wenn ich (zum Beispiel) einen Radiobutton 1 anklicke, wird dieser Wert im Browser angezeigt. Ich habe drei Radiobuttons.

Hier ist meine Ajax-Abfrage:

function updatepayment(this.value)() 
var ajaxResponse = new Object(); 
    $(document).ready(function() { 
    $('.rmr').click(function() { 
    var rbVal = $(this).val(); 
     var myContent; 
     if (ajaxResponse[rbVal]) { //in cache 
      myContent = ajaxResponse[rbVal]; 
      $("#contentcontainer").html(myContent); 
     } 
     else { // not in cache 
     var urlForAjaxCall = "include/function.php" + rbVal + ".html"; 
      $.post(urlForAjaxCall, function (myContent) { 
      ajaxResponse[rbVal] = myContent; 
      $("#contentcontainer").html(myContent); 
      }); 
     } 
     }); 
    }); 
+2

Was ist der Fehler, den Sie bekommen? – Chandu

+0

Es sieht so aus, als ob die Antwort kein Objekt ist. Verwenden Sie 'json' als Typ für' $ .post'. – jwueller

+0

keine Änderung am Browser – jeessy

Antwort

0
  1. Ihre Cache-Prüfung wird immer falsch sein, da Sie immer ajaxResponse in der Funktion wieder erklären. ajaxResponse sollte global deklariert werden.
  2. Und Sie brauchen nicht wirklich die Post-Funktion (da Sie keine Daten veröffentlichen) können Sie einfach die .load-Funktion verwenden.
  3. Sie nicht eine Funktion benötigen, um die $ (document) .ready Funktion

var ajaxResponse = new Object() zu wickeln;

$ (document) .ready (function() {

$('.rmr').click(function(){ 
    var rbVal = $(this).val(); 
    var myContent; 
    if (ajaxResponse[rbVal]) 
    { //in cache 
     $("#contentcontainer").html( ajaxResponse[rbVal]); 
    } 
    else 
    { // not in cache 
     var urlForAjaxCall = "include/function.php" + rbVal + ".html"; 
     $("#contentcontainer").load(urlForAjaxCall, function (myContent) 
     { 
      //Extra processing can be done here, like your cache 
      ajaxResponse[rbVal] = myContent; 
     }); 
    } 

});

});

EDIT: Nach Ihre Kommentare zu Ihrem OP sehen Sie versuchen, die Radio-Buttons von Klassennamen „RMR“ zu wählen, aber nicht über sie auf den Etiketten gesetzt Sie brauchen:

<input class="rmr" type="radio" name="rmr" id="payment1" value="3" onclick="updatepayment(this.value)" /> <br> 
<input class="rmr" type="radio" name="rmr" id="payment2" value="5.5" onclick="updatepayment(this.value)" /><br> 
<input class="rmr" type="radio" name="rmr" id="payment4" value="10" onclick="updatepayment(this.value)" /><br> 

oder Sie könnten

$("input[name=rmr]")

verwenden, um sie auszuwählen durch ihre Eingabe Name Attribut

Verwandte Themen