फ़ॉर्म पर कार्रवाई विशेषता और सामान्य सबमिट बटन के कारण फ़ॉर्म सबमिट होता है और एक ही पृष्ठ पर नहीं रहता है।
जो आपके .submit()
. पर ले जाता है .preventDefault()
. सहित विधि एचटीएमएल लोड होने के बाद शायद व्याख्या नहीं की जा रही है।
आप इसकी तर्ज पर कुछ कर सकते हैं:
<html>
...
<body>
...
<form id="formA" action="test.php" method="post" enctype="multipart/form-data">
<input id="commentData" name="commentData" type="text" />
<input type="submit" value="toDb" id="toDB" name="toDB" />
</form>
...
</body>
<script>
...script here...
</script>
</html>
और जावास्क्रिप्ट कुछ इस तरह हो सकता है:
( function( $ )
{
var submit = $( 'input[id=toDB]' );
$( submit ).on
(
'click',
function( event )
{
event.preventDefault();
var form = $( this ).parent();
// Get form fields
var data = $( form ).serializeArray(), obj = {}, j = 0;
for( var i = 0; i < data.length; i++ )
{
if( data[i].name in obj )
{
var key = data[i].name + '_' + j;
obj[key] = data[i].value;
j++;
}
else
{
obj[data[i].name] = data[i].value;
}
};
// Make AJAX request
$.ajax
(
{
url: $( form ).attr( 'action' ),
type: 'POST',
data: 'toDB=' + JSON.stringify( obj ),
success: function( data, textStatus, xhr )
{
// Do something with data?
...
alert( 'ok' );
}
}
);
}
);
}( jQuery )
);
देखें jsfiddle अपने लिए।
आप बता सकते हैं कि यह काम कर रहा है क्योंकि आपको कंसोल त्रुटि मिलती है कि अनुरोध गंतव्य नहीं मिला - 404 - हालांकि पृष्ठ रीफ्रेश नहीं होता है, आप वहीं रहते हैं जहां आप हैं ... सबमिट करने के लिए उचित पृष्ठ के साथ पूरी तरह से काम करता है।पी>
संपादित करें
मैंने ajax()
. में 'डेटा' की सेटिंग में बदलाव किया है कॉल करें ताकि फ़ॉर्म फ़ील्ड एक POST वैरिएबल [toDB] पर एक json स्ट्रिंग के रूप में सेट हो जाएं।
तो अपने PHP में आप करेंगे:
$datas = json_decode( $_POST['toDB'], true );
और अब आपका $datas
वेरिएबल एक सहयोगी सरणी है जिसमें आपके सभी फॉर्म फ़ील्ड नाम और मान शामिल हैं। मैं इस अगले कथन पर 100% नहीं हूं, लेकिन आपको PHP के stripslashes()
का उपयोग करने की आवश्यकता हो सकती है json_decode()
. का उपयोग करने से पहले POSTED डेटा पर विधि
यानी:
//Connect to database server
mysql_connect( "localhost", "user", "" ) or die ( mysql_error() );
mysql_select_db( "test" ) or die( mysql_error() );
$strSQL = "SELECT * FROM comments order by RAND() LIMIT 5";
$rs = mysql_query( $strSQL );
if( !$rs )
{
echo 'Could not run query ' . mysql_error();
exit;
}
$dt1=date("Y-m-d");
if( isset( $_POST['toDB'] ) )
{
$datas = json_decode( stripslashes( $_POST['toDB'] ), true );
$dataA = $datas['commentData'];
$sql = "INSERT INTO comments( id, comment, datum )VALUES( DEFAULT, '" . $dataA . "', '" . $dt1 . "' );";
$result=mysql_query( $sql );
}
mysql_close();
आशा है कि यह मदद करता है