J'ai une page principale HTML qui utilise l'interface utilisateur de jQuery mobile. Quelque part sur la page HTML que j'ai une forme qui est quelque chose comme une forme de vote:Comment soumettre un formulaire dans une page jQuery Mobile?
<form name = "vote" action = "logicDB.php" method = "post">
<center>
<h3>Watch our videos above and share your opinion which manufacturer produces the best sport sedans</h3>
<fieldset style = "width:60%;">
<legend>Choose a car:</legend>
<input type = "radio" name = "rc1" id = "radio-choice-1" value = "Audi"/>
<input type = "radio" name = "rc1" id = "radio-choice-2" value = "BMW"/>
<input type = "radio" name = "rc1" id = "radio-choice-3" value = "Mercedes"/>
</fieldset>
<input value = "SUBMIT" type = "submit" />
</center>
</form>
Le paramètre d'action du formulaire appelle mon fichier php qui a cette logique:
<?php
$connection = mysql_connect("localhost","root","myPassword");
if(!$connection){ die('Could not connect: ' . mysql_error()); }
mysql_select_db("mydatabase", $connection);
if ($_POST['rc1'] == 'Audi')
{
mysql_query("
UPDATE carvote
SET votes = votes + 1
WHERE Brands = 'Audi'
",$connection);
echo "success Audi within if";
}
if ($_POST['rc1'] == 'BMW')
{
mysql_query("
UPDATE carvote
SET votes = votes + 1
WHERE Brands = 'BMW'
",$connection);
echo "success BMW within if";
}
if ($_POST['rc1'] == 'Mercedes')
{
mysql_query("
UPDATE carvote
SET votes = votes + 1
WHERE Brands = 'Mercedes'
",$connection);
echo "success Mercedes within if";
}
mysql_close($connection);
?>
J'ai base de données créée sur mon serveur WAMP localhost et ce code php écrit dans la base de données en fonction de l'option radio choisie et soumise à partir du formulaire. Ces échos dans le php ne sont jamais atteints. Le problème est que lorsque je clique sur Envoyer, je reçois un écran blanc disant "indéfini" dans le coin supérieur gauche et après quoi rien n'est écrit dans la base de données. J'ai trouvé que si je supprime la ligne qui appelle le mobile jQuery en haut de la page principale html tout fonctionne bien et les données sont écrites dans la base de données (les échos dans le php sont atteints). Il semble que jQuery mobile n'est pas compatible avec mon code php. Comment devrais-je résoudre ce problème? Merci d'avance!
MISE À JOUR (je l'ai fait le travail): Voici ce que je changé sous la forme:
<form id = "ContactForm" onsubmit="return submitForm();">
Le fichier php avec la base de données reste le même. Autre que j'ai également ajouté un code Ajax:
function submitForm()
{
$.ajax({type:'POST', url: 'logicDB.php', data:$('#ContactForm').serialize(), success: function(response)
{
$('#ContactForm').find('.form_result').html(response);
}});
return false;
}
Pour summerize: pages jQuery Mobile (pages intérieures div avec un data-role = "page") peut être submited UNIQUEMENT via AJAX. Cela ne fonctionnera pas autrement. Je vais changer le sujet à ma question, afin que plus de gens puissent l'atteindre.
Recherchez une instruction 'echo' /' print_r' dans votre fichier 'logicDB.php', à l'exception de ce que vous avez indiqué ci-dessus. –
Je ne vois pas votre jQuery? Sans cela, nous ne pouvons pas voir ce qui se passe. –
Salut Bibhas, je ne l'ai pas inclus dans mon fichier php.Je vais éditer ma question avec le code php entier. –