/ / Envoi de formulaire avec JS activé et JS désactivé - jquery, ajax

Soumission de formulaire avec JS activé et JS désactivé - jquery, ajax

En ce moment, j'ai deux méthodes pour soumettre unform - un si Javascript est activé (soumission de formulaire ajax, soumission à process.php) et un si Javascript n'est pas activé (soumis à index.php). Cependant, pour le moment, javascript est activé et la soumission de JQ / Ajax ne fonctionne pas car la page est rafraîchissante.

index.php:

<?php
include_once("TaskDB.php");
include_once("task.php");

// JAVASCRIPT DISABLED

if(isset($_POST["description_text"]) && isset($_POST["deadline_text"])){
$description = $_POST["description_text"];
$duration = $_POST["duration_text"];
$deadline = $_POST["deadline_text"];

// create a new task object, add it to database
$task = new Task("DEFAULT", $description, $duration, $deadline, "0");
TaskDB::addTask($task);
// to prevent re-submission upon refreshing the page
header("Location: index.php");
}


<!doctype html>

<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
<title>Taskage</title>
<script>
$(document).ready(function(){
$("#task_form").submit(function(e){
$.post("process.php", $("#task_form").serialize(), function(data){

// clear the current task table
$("#form").nextAll("tr").empty();

// refresh the task table with the newly inserted task
$(data).insertAfter("#form");
});
e.preventDefault();
});
});
</script>
</head>
<body>

<div id="topframe">
<div id="logo"></div>
</div>

<div id="nav">
<table id = nav_table>
<tr>
<td><a href="index.php"><img src="/images/images/tab1m.png" class="navimg" id="tab1"/></a></td>
<td><a href="completed.php"><img src="/images/images/tab2.png" class="navimg" id="tab2"/></a></td>
<td><a href="failed.php"><img src="/images/images/tab3.png" class="navimg" id="tab3"/></a></td>
<td><a href="settings.php"><img src="/images/images/tab4.png" class="navimg" id="tab4"/></a></td>
</tr>
</table>
</div>

<div id="main_area">
<h2>Tasks</h2>

<table id = "tasks_table">
<tr>
<th>Date</th>
<th>Hours</th>
<th>Task</th>
<th></th>
</tr>
<tr id = "form">
<form action="index.php" method="POST" id="task_form">
<td><input type="text" id="deadline_text" name="deadline_text"/></td>
<td><input type="text" id="duration_text" name="duration_text"/></td>
<td><input type="text" id="description_text" name="description_text"/></td>
<td><input type="submit" value="Add Task" id="task_submit"/></td>
</form>
</tr>

<?php
TaskDB::generateTaskTable();
?>

</table>
</div>

</body>
</html>

Process.php:

<?php

include_once("TaskDB.php");
include_once("task.php");

if(isset($_POST["description_text"]) && isset($_POST["deadline_text"])){
$description = $_POST["description_text"];
$duration = $_POST["duration_text"];
$deadline = $_POST["deadline_text"];

// create a new task object, add it to database
$task = new Task("DEFAULT", $description, $duration, $deadline, "0");
TaskDB::addTask($task);
TaskDB::generateTaskTable();


}

?>

Il y a un preventDefault () pour chaque fois que le formulaire est soumis afin que je ne puisse pas "comprendre pourquoi la page est actualisée. Toute aide serait très appréciée. Merci.

Réponses:

0 pour la réponse № 1

J’ai remarqué que l’adresse que vous utilisez en utilisant jQuery a un https protocole. Il pourrait être bloqué par le navigateur si votre site n'est pas https. Essayez de le changer en http au lieu.

En d'autres termes, il semble que votre jQuery ne soit pas chargé.


0 pour la réponse № 2

J'ai compris la raison pour laquelle JQuery n'était pas en train de chargerC’est parce que ma pile CMOS est morte récemment et que ma date et mon heure étaient désactivées (elle avait été réglée sur 2009). Par conséquent, les certificats de sécurité ne permettaient pas de charger certaines pages et, je suppose, m’empêchaient de charger le fichier JQ de Google. en réinitialisant l’heure et la date, le chargement a commencé correctement.

Merci pour les réponses et l'aide quand même!