it-swarm.com.de

jQuery AJAX Formulardaten serialisieren mit PHP

Ich stecke in meinem Code fest, ich muss Daten aus dem Formular an die check.php-Seite senden und sie dann verarbeiten.

Das ist mein Code:

Der AJAX Teil:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
        type:"POST",
        url:form.attr("action"),
        data:form.serialize(),
        success: function(response){
            console.log(response);  
        }
    });
});
});
</script>

Die Form:

<form action="check.php" method="post" name="myForm" id="myForm">
<input type="text" name="user" id="user" />
<input type="text" name="pass" id="pass" />
<input type="button" name="smt" value="Submit" id="smt" />
</form>
<div id="err"></div>

der PHP-Teil:

$user=$_POST['user'];
$pass=$_POST['pass'];

if($user=="tony")
{
    echo "HI ".$user;   
}
else
{
    echo "I dont know you.";    
}
12
gomzy

Versuche dies

 $(document).ready(function(){
    var form=$("#myForm");
    $("#smt").click(function(){
    $.ajax({
            type:"POST",
            url:form.attr("action"),
            data:$("#myForm input").serialize(),//only input
            success: function(response){
                console.log(response);  
            }
        });
    });
    });
11

probieren Sie es aus, aber stellen Sie zunächst sicher, was Sie antworten auf Konsole.log (Antwort) auf ajax success vom Server

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
        type:"POST",
        url:form.attr("action"),
        data:form.serialize(),

        success: function(response){
        if(response === 1){
            //load chech.php file  
        }  else {
            //show error
        }
        }
    });
});
});

7
Always Sunny

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
        type:"POST",
        url:form.attr("action"),
        data:form.serialize(),
        success: function(response){
            console.log(response);  
        }
    });
});
});
</script>

Dies ist perfekter Code, es gibt kein Problem. Sie müssen das in PHP-Skript überprüfen.

4
L Ananta Prasad

Ich hatte gerade das gleiche Problem: Sie müssen die Daten auf der PHP-Seite desialisieren.

Fügen Sie am Anfang Ihrer PHP-Datei hinzu (Achtung, diese kurze Version würde alle anderen Post-Variablen ersetzen):

parse_str($_POST["data"], $_POST);
1
ToHe

Ändern Sie Ihren Code wie folgt: 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var form=$("#myForm");
$("#smt").click(function(){
$.ajax({
        type:"POST",
        url:form.attr("action"),
        data:form.serialize(),

        success: function(response){
        if(response == 1){
              $("#err").html("Hi Tony");//updated
        }  else {
            $("#err").html("I dont know you.");//updated
        }
        }
    });
});
});
</script>

PHP -

<?php
$user=$_POST['user'];
$pass=$_POST['pass'];

if($user=="tony")
{
    echo 1;   
}
else
{
    echo 0;    
}
?>
0
Chetan Gawai

Ihr Problem liegt in Ihrer PHP-Datei. Wenn Sie die serialize()-Methode von jquery verwenden, senden Sie eine Zeichenfolge, sodass Sie sie nicht wie ein Array behandeln können. Machen Sie eine var_dump($_post) und Sie werden sehen, worüber ich spreche.

0
Alcides
Try this its working..

    <script>
      $(function () {
      $('form').on('submit', function (e) {

        e.preventDefault();
        $.ajax({
            type: 'post',
            url: '<?php echo base_url();?>student_ajax/insert',
            data: $('form').serialize(),
            success: function (response) {
            alert('form was submitted');
            }
            error:function()
            {
            alert('fail');
            }
      });
      });
          });
    </script>
0
karthikeyan