2012-04-19 6 views
7

मैं एक एचटीएमएल मुख्य पृष्ठ jQuery मोबाइल के यूआई का उपयोग कर रहा है।एक jQuery मोबाइल पेज के अंदर एक फॉर्म कैसे सबमिट करें?

<?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); 
?> 

मैं एक है:

<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 फ़ाइल बुला रहा है: HTML पृष्ठ पर कहीं न कहीं मैं एक रूप है जो एक मतदान प्रपत्र की तरह कुछ है डेटाबेस मेरी WAMP स्थानीय होस्ट सर्वर पर बनाया है और इस php कोड पर जो रेडियो विकल्प चुना जाता है और फार्म से प्रस्तुत निर्भर करता है डेटाबेस के लिए लिख रहे हैं। Php में ये echoes कभी नहीं पहुंचे हैं।

समस्या यह है कि जब मैं क्लिक करें प्रस्तुत मैं एक सफेद स्क्रीन कह "अनिर्धारित" ऊपरी बाएँ कोने में और कुछ भी नहीं है कि डेटाबेस के लिए लिखा है के बाद मिलता है। मैंने पाया है कि अगर मैं उस रेखा को हटा देता हूं जो एचटीएमएल मुख्य पृष्ठ से शीर्ष पर jQuery मोबाइल को कॉल करता है, तो सब कुछ ठीक काम कर रहा है और डेटा डेटाबेस में लिखा गया है (PHP में echoes तक पहुंच गए हैं)। ऐसा लगता है कि jQuery मोबाइल मेरे php कोड के साथ संगत नहीं है। मुझे इसे कैसे ठीक करना चाहिए? अग्रिम धन्यवाद!

UPDATED (मैं यह काम कर दिया): यहाँ है कि मैं क्या रूप में बदल गया है:

<form id = "ContactForm" onsubmit="return submitForm();"> 

डाटाबेस के साथ php फ़ाइल ही रहता है। अन्य कि तुलना में मैं भी एक अजाक्स कोड जोड़ लिया है:

function submitForm() 
    { 
     $.ajax({type:'POST', url: 'logicDB.php', data:$('#ContactForm').serialize(), success: function(response) 
     { 
      $('#ContactForm').find('.form_result').html(response); 
     }}); 
     return false; 
    } 

summerize करने के लिए: jQuery मोबाइल पृष्ठों (div अंदर पृष्ठों एक डेटा-भूमिका = "पेज" के साथ) केवल AJAX के माध्यम से सबमिट किए जा सकता है। यह अन्यथा काम नहीं करेगा। मैं मेरे सवाल का विषय बदल जाएगा, ताकि और अधिक लोगों को यह तक पहुँच सकते हैं।

+0

ऊपर दी गई चीज़ों के अलावा, आपकी 'logicDB.php' फ़ाइल में' echo'/'print_r' कथन की तलाश करें। –

+0

मैं आपका jQuery नहीं देखता हूं? इसके बिना हम नहीं देख सकते कि क्या हो रहा है। –

+0

हाय बिभा, मुझे यह मेरी PHP फ़ाइल में शामिल नहीं किया गया है।मैं अपने प्रश्न को पूरे PHP कोड के साथ संपादित करूंगा। –

उत्तर

6

मैंने आपके कोड की प्रतिलिपि बनाई और jquery मोबाइल डाला और कुछ मामूली परिवर्तन करने के बाद मुझे डेटा पोस्ट हो रहा है। मैंने इको कमांड के माध्यम से इसे चलाया, डीबी सम्मिलित नहीं। JQuery के मोबाइल पर

कॉल::

index.php पृष्ठ की
<!DOCTYPE html> 
<html> 
    <head> 
    <title>My Page</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" /> 
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
    <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script> 
</head> 

बाकी:

<div data-role="page"> 
<center> 
    <h3>Watch our videos above and share your opinion which manufacturer produces the best sport sedans</h3>     
    <form name="vote" action="logicDB.php" method="post" data-ajax="false"> 
     <fieldset style = "width:60%;" data-role="controlgroup"> 
      <legend>Choose a car:</legend> 
      <input type = "radio" name="rc1" id = "radio-choice-1" value = "Audi"/> 
      <label for="radio-choice-1">Audi</label> 

      <input type = "radio" name="rc1" id = "radio-choice-2" value = "BMW"/> 
      <label for="radio-choice-2">BMW</label> 

      <input type = "radio" name="rc1" id = "radio-choice-3" value = "Mercedes"/> 
      <label for="radio-choice-3">Mercedes</label>        
     </fieldset>     
     <input value = "SUBMIT" type = "submit" /> 
    </form> 
</center> 

और अंत में logicDB

निम्नलिखित पर एक नजर डालें। php

if ($_POST['rc1'] == 'Audi') { 
echo "Audi <br>"; 
} 
if ($_POST['rc1'] == 'BMW') { 
echo "BMW <br>"; 
} 
if ($_POST['rc1'] == 'Mercedes') { 
echo "Mercedes <br>"; 
} 

प्राथमिक परिवर्तन

<fieldset style = "width:60%;" data-role="controlgroup"> 

के लिए गए थे और data-ajax="false" मैं पहले उल्लेख किया है।

देखें कि यह आपके लिए काम करता है या नहीं।

+0

मैंने पहले से ही डेटा-एजेक्स = "झूठी" कोशिश की है और मुझे फिर से अनिश्चित (खाली स्क्रीन) शब्द के बिना सफेद स्क्रीन प्राप्त होती है, और डेटाबेस को कुछ भी नहीं लिखा जाता है ... मैंने कहीं पढ़ा है कि jQuery मोबाइल अपने पृष्ठों पर रीडायरेक्ट करता है और मुझे अपने PHP कोड में कुछ और शामिल करना चाहिए, लेकिन मुझे नहीं पता कि ... आपकी प्रतिक्रिया के लिए धन्यवाद, वैसे भी। –

+0

मेरे सबसे हालिया उत्तर से परे त्वरित सुझाव: 'if' कथन 'स्विच', 'केस' सिंटैक्स' में बदलें। आपके जैसे छोटे चेक वास्तव में कोई फर्क नहीं पड़ता है लेकिन बड़े चेक 'स्विच' में, 'केस' तेजी से चलता है और सफलता के बाद छोड़ देता है, बल्कि प्रत्येक 'अगर' सही होता है या नहीं, तो प्रत्येक के माध्यम से लूपिंग करता है। – jnthnjns

+1

हाय असोक, आपके सुझाव के लिए धन्यवाद। हालांकि, मुझे अपनी समस्या का समाधान मिला। मैंने AJAX के साथ फ़ॉर्म सबमिट किया और कोड डेटा-एजेक्स = "झूठी" की शांति हटा दी। मैं अपने प्रश्न को उस कोड के साथ संपादित करूंगा जो मैंने बदल दिया और जोड़ा। –

संबंधित मुद्दे