Tôi có một trang HTML chính đang sử dụng giao diện người dùng jQuery của điện thoại di động. Một nơi nào đó trên trang HTML Tôi có một hình thức mà là một cái gì đó giống như một hình thức bỏ phiếu:Làm cách nào để gửi biểu mẫu bên trong trang 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>
Tham số hành động của các hình thức đang kêu gọi tập tin php của tôi trong đó có logic này:
<?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);
?>
Tôi có một cơ sở dữ liệu được tạo trên máy chủ WAMP localhost của tôi và mã php này được ghi vào cơ sở dữ liệu tùy thuộc vào tùy chọn radio nào được chọn và được gửi từ biểu mẫu. Những tiếng vang trong php không bao giờ đạt được.
Vấn đề là khi tôi nhấp gửi, tôi nhận được màn hình trắng có nội dung "không xác định" ở góc trên cùng bên trái và sau đó không có gì được ghi vào cơ sở dữ liệu. Tôi đã tìm thấy rằng nếu tôi loại bỏ các dòng mà các cuộc gọi jQuery điện thoại di động ở đầu từ trang chính html tất cả mọi thứ đang làm việc tốt và dữ liệu được ghi vào cơ sở dữ liệu (tiếng vang trong php đạt được). Dường như điện thoại di động jQuery không tương thích với mã php của tôi. Làm thế nào tôi nên sửa lỗi này? Cảm ơn bạn trước!
CẬP NHẬT (Tôi đã làm cho nó làm việc): Đây là những gì tôi đã thay đổi theo hình thức:
<form id = "ContactForm" onsubmit="return submitForm();">
Các tập tin php với cơ sở dữ liệu vẫn giữ nguyên. Ngoài ra tôi cũng đã thêm một mã Ajax:
function submitForm()
{
$.ajax({type:'POST', url: 'logicDB.php', data:$('#ContactForm').serialize(), success: function(response)
{
$('#ContactForm').find('.form_result').html(response);
}});
return false;
}
Để summerize: trang jQuery Mobile (trang bên trong div với một dữ liệu-role = "trang") có thể được đệ trình CHỈ qua AJAX. Nó sẽ không hoạt động nếu không. Tôi sẽ thay đổi chủ đề cho câu hỏi của mình, để nhiều người hơn có thể tiếp cận nó.
Tìm câu lệnh 'echo' /' print_r' trong tệp 'logicDB.php' của bạn, ngoài những gì bạn đã cung cấp ở trên. –
Tôi không thấy jQuery của bạn? Nếu không có điều này chúng ta không thể thấy những gì đang xảy ra. –
Xin chào Bibhas, tôi không có trong tập tin php của mình.Tôi sẽ chỉnh sửa câu hỏi của tôi với toàn bộ mã php. –