2016-09-27 4 views
0

Ich habe diese Variable $type und ich möchte es month oder year sein. Es sollte durch Drücken einer div geändert werden.Ajax Änderung PHP Variable

Ich habe versucht, ein onclick Ereignis mit einem Ajax-Aufruf zu erstellen.

Der ajax Anruf und die variable sind im selben Skript (index.php)

Innerhalb der Onclick-Funktion:

var curr_class = $(this).attr('class'); 


$.ajax({ 
    type: "POST", 
    url: "index.php", 
    data: { 
     type: curr_class 
    }, 
    dataType: 'text', 
    success: function(data) { 
     // Test what is returned from the server 
     alert(data); 
    } 
}); 

Aber die Warnung gibt die ganze HTML-Seite. Wenn ich die Daten console.log (erstellen var data = { type:curr_class }) and console.log *that data* it returns type = month` (die richtigen)

, während ich es nur wollen, ist Monate oder Jahre

So oben auf der Seite, die ich zurück nennen kann

if(empty($_POST['type'])){ 
    $type = 'month'; 
} else { 
    $type = $_POST['type']; 
} 

und die PHP-variablen ändern, damit ich es in den Rest meines Skript verwenden können.

Aber wie kann ich acc omplish this?

Mit freundlichen Grüßen

+0

Sie sollten keine Ajax-Anforderung zu 'index.php' machen, wenn Sie den Inhalt nicht wollen' index.php' zurückgegeben. Schreiben Sie stattdessen ein separates Skript, um Ihre Ajax-Anfragen zu bearbeiten. – jeroen

+0

Aber wie ändere ich dann die * PHP Variable *? @jeroen – EG47

+1

Es gibt nicht so etwas wie * die PHP-Variable *. Jede Variable wird nur während der Ausführung des Skripts festgelegt. Sie ist nicht vorhanden, nachdem das Skript beendet wurde (es sei denn, Sie verwenden eine Sitzung, eine Datenbank usw., um die Informationen zu speichern). – jeroen

Antwort

0

, wie Sie dies als Folge ganze Seite Anfrage auf die gleiche Seite senden ist zurückkehren Sie können es auf eine andere Seite zu senden haben und von dieser Seite geben die Variable vom Typ

if(empty($_POST['type'])){ 
$type = 'month'; 
} else { 
    $type = $_POST['type']; 
    echo $type; 

diesen Code in separater Datei halten und einen ajax-Aufruf

+0

Verwenden Sie nur Jquery-Code nicht in PHP bcoz können wir nicht Laufzeitvariable Wert in PHP – ImBS

+0

und wie kann ich * verwenden * diese Variable an einem anderen Teil des Codes? – EG47

+0

Speichern Sie es in der Sitzung Variable – Shahrukh

0
//Try This It's Work 
<a href="Javascript:void(0);" class="btn-my" data-title="month">Get Value</a> 
<a href="Javascript:void(0);" class="btn-my" data-title="year">Get Value</a> 
$(".btn-my").click(function(){ 
    var curr_class = $(this).data('title'); 
    $.ajax({ 
     type: "POST", 
     url: "index.php", 
     data: { 
      type: curr_class 
     }, 
     dataType: 'text', 
     success: function(data) { 
      // Test what is returned from the server 
      alert(data); 
     } 
    }); 
}); 
+0

Rückgabe gesamte HTML-Seite – EG47

+0

Jetzt können Sie diesen Code überprüfen – ImBS

0

es auf diese Weise tun, um die Seite machen

Stellen Sie sicher, dass Daten im DOM verfügbar sind. dann mach den nächsten Schritt.

if(empty($_POST['type'])){ 
    $type = 'month'; 
    $monthOrDate = '<span id="date">'.$type.'</span>'; 
    echo $monthOrDate; 
} else { 
    $type = $_POST['type']; 
     $monthOrDate = '<span id="date">'.$type.'</span>'; 
    echo $monthOrDate; 
} 

dann in Javascript verwenden

$('#date').click(function(){ 
    alert($(this).val()); // if not then comment it use below one 
    alert($(this).text()); 
});