2013-10-23 80 views
0

我需要使用jQuery處理我的表單(不刷新我的網站)並使用一個buddon我想從我的數據庫添加或刪除行。 插入數據庫工作正常 也刪除,但我不知道我需要做什麼之後,第一次點擊我添加到數據庫,但第二次點擊後,我從數據庫中刪除行。使用jQuery處理表格

我的形式

<form action="index.php" method="post" id="myForm"> 
    <input type="hidden" name="option" value="com_mediamall" /> 
    <input type="hidden" name="task" value="addToFav" /> 
    <input type="hidden" name="addMediaId" value="<?php echo $media->id; ?>" /> 
    <input type="hidden" name="delRow" value="<?php echo $del->id; ?>" /> 
    <input type="submit" name="submit" id="sub" value="1"></input> 
</form> 

jQuery的

<script> 
    $("#sub").click(function() { 
    $.post($("#myForm").attr("action"), $("#myForm :input").serializeArray()); 
    }); 

    $("#myForm").submit(function() { 
    return false ; 
    }); 
</script> 

功能插入或刪除

function addToFav() {  
    $user =& JFactory::getUser(); 
    $db2 =& JFactory::getDBO(); 
    $mediaid = $_POST['addMediaId']; 
    $delid = $_POST['delRow']; 

    if(isset($_POST['submit']) == '1') {    
    $query = ' INSERT INTO `#__mediamall_favourite_media` (`id`, `userid`, `mediaid`) VALUES ("","'.$user->id.'","'.$mediaid.'")'; 
    }  
    elseif(isset($_POST['submit']) == '0') {  
     $query = ' DELETE FROM #__mediamall_favourite_media WHERE id = "'.$delid.'" '; 
     $db2->setQuery($query); 
     $db2->query(); 
    }  
} 

將被apriciate形成你的幫助,因爲我花了很多時間找前面回答和沒有結果..謝謝

回答

-1

HTML

<form action="" onsubmit="return false;" method="post" id="myForm"> 
<input type="hidden" name="option" value="com_mediamall" /> 
<input type="hidden" name="task" value="addToFav" /> 
    <input type="hidden" name="addMediaId" value="<?php echo $media->id; ?>" /> 
<input type="hidden" name="delRow" value="<?php echo $del->id; ?>" /> 
<input type="submit" name="submit" id="sub" value="1"></input> 

JQUERY

$('#myForm').submit(function(){ 
$.post(url,$('#myForm').serialize(),function(success){ 
if(success=='success'){ 
alert('Data Sent); 
// or do something else 
} 
}); 
}); 
1

你需要使用preventDefault

$('#myForm').submit(function(e){ 
e.preventDefault(); 
var url = $("#myForm").attr("action"); 
$.post(url,{data : $('#myForm').serialize()},function(data){ 
//process 
}); 
}); 

,你也可以使用json檢索從PHP數據,以便在你的PHP文件中,你可以做

$data['res'] = 'ok'; 
$data['something_else'] = 'value'; 
echo json_encode($data); 

然後處理它像insertdelete等之後這個

$('#myForm').submit(function(e){ 
e.preventDefault(); 
var url = $("#myForm").attr("action"); 
$.post(url,{data : $('#myForm').serialize()},function(data){ 
//process 
console.log(data.res); 
    console.log(data.something_else); 
}.'json'); 
}); 
0

切換submit button value

$("#sub").click(function() { 
    var url=$("#myForm").attr("action"); 
    $.post(url, $("#myForm :input").serializeArray(),function(){ 
     var val=$("#sub").val()==1 ? 0 : 1;// toggle value of submit for insert or delete 
     $("#sub").val(val); 
    }); 
}); 

PHPisset($ _ POST [ '提交'])=更改條件='1'isset($ _ POST ['submit'])和$ _POST ['submit'] =='1'

代碼一樣,

if(isset($_POST['submit']) and $_POST['submit'] == '1') {    
    $query = ' INSERT INTO `#__mediamall_favourite_media` (`id`, `userid`, `mediaid`) VALUES ("","'.$user->id.'","'.$mediaid.'")'; 
}  
elseif(isset($_POST['submit']) and $_POST['submit'] == '0') {  
    $query = ' DELETE FROM #__mediamall_favourite_media WHERE id = "'.$delid.'" '; 
} 
if($query) 
{ 
    $db2->setQuery($query); //after if - else conditions 
    $db2->query(); 
} 
+0

它的工作原理,但沒有jQuery的。當我與jQuery運行此按鈕將切換,但不會插入和刪除。什麼應該出錯? – wiecman

+0

仍然不會工作:/因爲jQuery。我不知道爲什麼。 :( – wiecman