Javascript 使用jQuery处理表单

Javascript 使用jQuery处理表单,javascript,php,jquery,sql,Javascript,Php,Jquery,Sql,我需要使用jQuery(不刷新我的站点)处理我的表单,并使用一个buddon从数据库中添加或删除行。 插入到数据库工作正常 删除太多,但我不知道我需要做什么,第一次点击后,我添加到数据库,但在第二次点击后,我删除数据库中的行 我的表格 <form action="index.php" method="post" id="myForm"> <input type="hidden" name="option" value="com_mediamall" />

我需要使用jQuery(不刷新我的站点)处理我的表单,并使用一个buddon从数据库中添加或删除行。 插入到数据库工作正常 删除太多,但我不知道我需要做什么,第一次点击后,我添加到数据库,但在第二次点击后,我删除数据库中的行

我的表格

<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> 
我将非常感谢你的帮助,因为我花了很多时间寻找答案,却没有结果。。谢谢

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>

您需要使用
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);
然后像这样处理它

$('#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');
});

insert
delete
之后切换
submit按钮值

$("#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);
  });   
});
PHP中,将您的条件从isset($\u POST['submit'])='1'更改为isset($\u POST['submit'])和$\u 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();
}

它可以工作,但没有jQuery。当我用jQuery运行这个时,按钮将切换,但不会插入和删除。出了什么问题?
$('#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');
});
$("#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);
  });   
});
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();
}