2012-04-24 21 views
7

के साथ MYSQL अपडेट करें मैं फोनगैप और jQuery मोबाइल के साथ एक मोबाइल एप्लिकेशन बनाने की कोशिश कर रहा हूं। मेरे ऐप में मेरे पास एक पृष्ठ है जहां PHP फ़ाइल का एक लिंक है जो MYSQL अपडेट करता है और अगले पृष्ठ पर जाता है। लेकिन फोनगैप के साथ मुझे बाहरी सर्वर पर सभी PHP फाइलों की आवश्यकता है, इसलिए मैं इस एप्लिकेशन पर अपना वर्तमान समाधान नहीं कर सकता।jQuery/AJAX

यह पीएचपी कि मैं MYSQL अद्यतन करने के लिए इस्तेमाल करते हैं

<?php 

$var = @$_GET['id'] ; 

$con = mysql_connect("localhost","username","abc123"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("database", $con); 

mysql_query("UPDATE table SET condition=true 
WHERE ID= \"$var\" "); 

header('Location: http://1.2.3.4/test'); 

mysql_close($con); 
?> 

तो कैसे मैं इस पीएचपी जब उपयोगकर्ता एक बटन पर क्लिक करता चला सकता हूँ? मुझे लगता है कि jQuery/AJAX के साथ?

+0

क्या आप कुछ कोड भेज सकते हैं जहां आप ऐप्स में इस PHP पृष्ठ को कॉल करते हैं। – vikky

+1

यह 'एसक्यूएल' इंजेक्शन के लिए प्रवण है। उपयोगकर्ता द्वारा प्रदान किए गए डेटा को सीधे बिना किसी प्रश्न के क्वेरी में डालें। – Quassnoi

उत्तर

8

आइए बताएं कि उपरोक्त PHP कोड फ़ाइल में है, update.php। फिर आप निम्न कोड का उपयोग कर सकते हैं -

<head> 
<script src="jquery.js"></script> 
<script> 
    function UpdateRecord(id) 
    { 
     jQuery.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: 'id='+id, 
     cache: false, 
     success: function(response) 
     { 
     alert("Record successfully updated"); 
     } 
    }); 
} 
</script> 
</head> 
<body> 
<input type="button" id="button_id" value="Update" onClick="UpdateRecord(1);"> 
</body> 

बस अद्यतन रिकॉर्डर फ़ंक्शन में एक वैध आईडी पास करें। Update.php फ़ाइल में अपना PHP कोड डालें। बस एक सुरक्षित पक्ष पर होना करने के लिए, अपने PHP कोड में $var = @$_POST['id'] ; साथ $var = @$_GET['id'] ; की जगह और देखें कि क्या इस के लिए आप

+0

मुझे यह कोड बनाने के लिए इस कोड को बदलने की आवश्यकता कैसे है? अब यह कुछ भी नहीं करता .. – user1323294

+0

क्या यह कम से कम रिकॉर्ड अपडेट करता है? – skos

+0

जब मैं बटन पर क्लिक करता हूं तो यह कुछ भी नहीं करता .. – user1323294

1

कहें कि आपके बटन में एक आईडी है clickme आप इस पर एक ईवेंट हैंडलर बांधते हैं, मैं उस मामले से बचने के लिए चयनकर्ता पर हूं जहां कोड पृष्ठ पर मौजूद नहीं है जब आप पृष्ठ पर मौजूद नहीं हैं .. आप बहुत अच्छी तरह से कर सकते हैं एक click हैंडलर

$(document).on("click","#clickme",function(){ 
    $.ajax({ 

     type:"POST", //GET - update query should be POST 
     url: my_endpoint.php, //your php end point 
     data: {jsonKey1:jsonValue1}, 
     success: function(data){ //if success 
      //do necessary things with data 
     } 

    }) 
}); 

बाँध यह आपके लिए क्या देख रहे है?

+0

यह काम नहीं करता प्रतीत होता है – user1323294

0

काम करता है अपनी सफलता समारोह

success: function(response) 
    { 
     window.location = response; 
    } 

में कुछ करो और आप एचटीएमएल

शामिल करना चाहिए और php में इस

mysql_query('blah blah'); 
mysql_close($con); 

echo "http://1.2.3.4/test"; 
2
<head> 
<script src="jquery.js"></script> 
<script> 
    function UpdateRecord(id) 
    { 
     jQuery.ajax({ 
     type: "POST", 
     data: 'id='+id,  // <-- put on top 
     url: "update.php", 
     cache: false, 
     success: function(response) 
     { 
     alert("Record successfully updated"); 
     } 
    }); 
} 
</script> 
</head> 
<body> 
<input type="button" id="button_id" value="Update" onClick="UpdateRecord(1);"> 
</body> 

गु की तरह कुछ करना ose Sachyn Kosare काम करता है ने सुझाव दिया कोड, केवल बात यह है कि लाइन data: 'id='+idurl: "update.php"

के शीर्ष पर हो गया है और, यदि आप अपने PHP के लिए $var = $_POST['id']; का उपयोग कर सकते है।