jQuery モバイルの UI を使用している HTML メイン ページがあります。HTML ページのどこかに、投票フォームのようなフォームがあります。
<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>
フォームのアクション パラメータは、このロジックを持つ私の php ファイルを呼び出しています。
<?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);
?>
WAMP localhost サーバーに作成されたデータベースがあり、フォームから選択および送信されたラジオ オプションに応じて、この php コードがデータベースに書き込みます。PHP のこれらのエコーには決して到達しません。
問題は、送信をクリックすると、左上隅に「未定義」という白い画面が表示され、その後データベースに何も書き込まれないことです。HTMLメインページの上部にあるjQueryモバイルを呼び出す行を削除すると、すべてが正常に機能し、データがデータベースに書き込まれることがわかりました(phpのエコーに到達します)。jQuery モバイルは私の php コードと互換性がないようです。これを修正するにはどうすればよいですか? 前もって感謝します!
UPDATED (私はそれを機能させました): これが私がフォームで変更したものです:
<form id = "ContactForm" onsubmit="return submitForm();">
データベースを含む php ファイルは同じままです。それ以外に、Ajax コードも追加しました。
function submitForm()
{
$.ajax({type:'POST', url: 'logicDB.php', data:$('#ContactForm').serialize(), success: function(response)
{
$('#ContactForm').find('.form_result').html(response);
}});
return false;
}
要約すると、jQuery Mobile ページ (data-role = "page" を持つ div 内のページ) は、AJAX 経由でのみ送信できます。それ以外の場合は機能しません。より多くの人が到達できるように、トピックを私の質問に変更します。