[Php] $ .post verbucht keine Daten


Answers

$.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

Question

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.