php wp - $.post verbucht keine Daten




all by (3)

$.post und $.get sind nur $.get der strukturierteren $.ajax() , also bevorzuge ich letztere. Die zusätzliche Struktur hält mich aufrecht.

Da Sie jQuery sowieso verwenden, würde ich Ihren Code wie folgt neu strukturieren:

$('#q1').click(function() {
    var test = "Hello there";
    $.ajax(function() {
        type: "POST",
        url: 'ajax.php',
        data: 'ans=' +test+ '&anothervarname=' + anothervarvalue,
        success: function(recd_data) {
            alert('Rec'd from PHP: ' + recd_data );
        }
    });
});

Beachten Sie, dass die Zeile data: nur für Beispielzwecke verwendet wird und nicht mit Ihrem Code übereinstimmt. Sie zeigen Ihnen nur, wie Sie Variablen an die PHP-Seite übergeben.

Natürlich schließt das oben genannte Entfernen des Inline-Javascript - nie eine gute Idee - von Ihrem Anchor-Tag-HTML ein, also:

 <a href="#" id="q1" >click</a>

Auch auf der PHP-Seite können Sie überprüfen, ob die Dinge funktionieren, indem Sie oben einen Test hinzufügen. Abgleich mit den data: Zeile im Beispiel AJAX-Code würde es so aussehen:

ajax.php

<?php
$a = $_POST['ans'];
$b = $_POST['anothervarname'];

$response = '<h1>Received at PHP side:</h1>';
$response .= 'Variable [ans] has value: ' . $a . '<br>';
$response .= 'Variable [anothervarname] has value: ' . $b . '<br>';

echo $response;

Wichtig: Beachten Sie die Verwendung von echo , nicht return , um Werte an das AJAX-Skript zu senden.

Beachten Sie auch, dass Sie sich mit den Dingen beschäftigen müssen , die von PHP im AJAX- success: Funktion NUR . Wenn Sie auf diese Daten außerhalb der Funktion success: zugreifen müssen, können Sie die Daten in ein verstecktes Element <input type="hidden" id="myHiddenInput"> wie <input type="hidden" id="myHiddenInput"> :

success: function(recd_data) {
    $('#myHiddenInput').html(recd_data);
}

Hier sind einige zusätzliche Beispiele für einfache AJAX-Konstruktionen:

Ein einfaches Beispiel

Komplizierteres Beispiel

Füllen Sie Dropdown 2 basierend auf Auswahl in Dropdown 1 auf

Hallo, das ist mein Code für page.php

<?php session_start(); ?>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript" src="js/new-landing.js"></script>
<script>
var ans1 = "home";
function aa(){
        $.post("ajax.php", { "ans": "test" },
function(data){
    alert("Posted");
}, "html");
    };
</script>
<a href="#" id="q1" onClick="javascript:aa();" >click</a>

und hier möchte ich sehen, ob meine Daten gepostet werden.

<?php
session_start();
$te = $_POST['ans'];
$_SESSION['demo'] = $te;
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>

wenn ich auf das Anker-Tag klicke. Die Alarmbox wird angezeigt. aber wenn ich die ajax.php Seite aktualisiere. Es zeigt einen Fehler. Hinweis: Undefinierter Index: ans in

C:\xampp\htdocs\healthqueens\hello\ajax.php on line 3

und der Ausdruck der Sitzung ist ebenfalls leer. Array ( [demo] => ) Bitte, wenn mir jemand den Fehler zeigen kann.


aber wenn ich die ajax.php Seite aktualisiere. Es zeigt einen Fehler an

Es sieht so aus, als ob Sie die Sitzungsvariable beim Veröffentlichen eines Werts festlegen und die Sitzungsvariable andernfalls abrufen möchten:

<?php
session_start();
if (isset($_POST['ans'])) {
    $te = $_POST['ans'];
    $_SESSION['demo'] = $te;
}
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>

Wenn Sie jQuery nicht in der Lösung verwenden möchten, können Sie dies versuchen. Lösung nabbed von hier https://.com/a/1714899/1784301

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    transformRequest: function(obj) {
        var str = [];
        for(var p in obj)
        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
        return str.join("&");
    },
    data: xsrf
}).success(function () {});




php javascript jquery ajax