2017-08-30 1 views
0

Ich habe jQuery verwendet, um ein Formular von der Seitenleiste zur Hauptseite zu laden. Jetzt möchte ich jQuery verwenden, um dieses Formular zu senden, aber ich habe Schwierigkeiten damit. Ich habe denselben jQuery-Code verwendet, um ein Formular zu übergeben, das nicht mit jQuery geladen wurde. Hoffentlich kann jemand sehen, was ich falsch gemacht habe.jQuery kann kein Formular senden, das mit jQuery geladen wurde

Wie kann ich den folgenden Code ändern, damit er mein Formular abschickt?

LINK, die die Form geladen:

<a href="#" id="link1">Exam1</a> 

JQUERY dieser Form geladen:

$(document).ready(function(){ 
    $('#link1').click(function(){ 
     $('#show').load('exam.php'); 

    });  
}); 

FORM:

<form action="form.php" id="exam" method="post" > 
    <input type="text" name="new_exam"/> 
    <button id="sub" name="" style="color:#e75618; padding:5px 66px" class="btn btn-default" ><b>Add Exam</b></button> 
</form> 

JQuery Formular abschicken:

$("#sub").click(function() { 
    $.post($("#exam").attr("action"), $("#exam").serialize(), function(info){ $("#result").html(info); }); 
    clearInput(); 
    $("html, body").animate({ scrollTop: 0 }, "slow"); 
    }); 

    $("#exam").submit(function() { 
     return false; 
}); 

function clearInput() { 

    $("#exam")[0].reset(); 

PHP:

$new_exam = $_POST['new_exam']; 

$insert_exam = "insert into examination (exam_title) values ('$new_exam')"; 

$run_exam = mysqli_query($con, $insert_exam); 
if($run_exam){ 
    echo "New Exam inserted"; 
} 
+1

Welche Fehler bekommen Sie? – hallleron

+0

Ich habe keinen Fehler erhalten. – Oponjous

+0

Enthält die exam.php nur das von Ihnen angegebene Formular? Oder gibt es mehr? – hallleron

Antwort

1

Um Ereignisse auf dynamisch erstellte Elemente binden Sie die Ereignisse auf einem Elternteil des Elements zu binden:

$('body').on('click', '#sub', function(){ 
    $.post($("#exam").attr("action"), $("#exam").serialize(), function(info){ $("#result").html(info); }); 
    clearInput(); 
    $("html, body").animate({ scrollTop: 0 }, "slow"); 
}); 

$('body').on('submit', '#exam', function(event){ 
    event.preventDefault(); 
    return false; 
}); 
+0

Ich verwende Ihren Code, um alle meine jQuery-Code zu umhüllen, aber es hat nicht für mich funktioniert. – Oponjous

+0

@Oponjous Werfen Sie einen Blick auf mein Update. Hast du es so gemacht? –

+0

Das hat funktioniert. Danke @Chin Leung – Oponjous