Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关于AJAX返回的更新表单_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php 关于AJAX返回的更新表单

Php 关于AJAX返回的更新表单,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,在我的网站上,我有一个表格,用户可以填写以更新数据库中的记录,表格如下 <form class='bill-upd'> <input type='hidden' value='".$info['rand']."' name='rand2' id='rand2'> <input type='hidden' value='".$info['id']."' name='billid' id='billid'>

在我的网站上,我有一个表格,用户可以填写以更新数据库中的记录,表格如下

 <form class='bill-upd'>
             <input type='hidden' value='".$info['rand']."' name='rand2' id='rand2'>
             <input type='hidden' value='".$info['id']."' name='billid' id='billid'>
            Total <input type='text' id='total' name='total' title='".$info['bill']."' class='defaultText' /><br />
            Bill name<input type='text' id='bill-name' name='bill-name' title='".$info['bill_name']."' class='defaultText' /><br />
           bill descriptiion <input type='text' id='bill-description' name='bill-description' title='".$info['bill_description']."' class='defaultText'  /><br />
            category   <select id='bill-category' name='bill-category'>
                <option value='Household Bills'>Household Bills</option>
                <option value='Social Activities'>Social Activities</option>
            </select>
        <input type='button' value='Save' class='bill-upd-submit' />
        </form>   
PHP

$uid=$\u会话['oauth\u id'];
$id=mysql\u real\u escape\u字符串($\u POST['billid']);
$bill=mysql\u real\u escape\u字符串($\u POST['total']);
$billname=mysql\u real\u escape\u字符串($\u POST['bill-name']);
$billdescription=mysql\u real\u escape\u字符串($\u POST['bill-description']);
$billcolour=mysql\u real\u escape\u字符串($\u POST['bill-category']);
$rand=mysql\u real\u escape\u字符串($\u POST['rand2']);
#更新记录
$query=mysql\u query(“更新`outgoings`SET id='$id',user\u id='$uid',bill='$bill',bill\u name='$billname',bill\u description='$billdescription',bill\u colour='$billcolour',rand='$rand',其中user\u id='$uid'和rand='$rand'”)或die(mysql\u error());
打印“£;”美元钞票。" ";
打印“.”$billname。" ";
打印“

”$billdescription。" "; 打印“”$比尔科洛尔。“

”; 回声“
因为您正在动态加载内容,所以您的初始绑定将不适用于此。请使用
jQuery on
进行这样的绑定

$(function(){
    $(document).on("click",".bill-upd-submit").click(function(e) {
        e.preventDefault();
        var elem = $(this);
        $.post("update_bill.php", elem.parent(".bill-upd").serialize(), function(data){
           elem.closest('li').html(data);
        });    
     });
 });
jQuery
on
适用于当前和将来的元素(通过ajax加载)


jQuery on可从1.7+获得。因此,如果您使用的是之前的版本,请考虑
live

谢谢@Shyju,但仍然不走运,数据似乎不正确insert@user766266:您是否收到任何脚本错误?firebug控制台显示了什么?它没有显示任何@shyju,您提供的代码没有显示任何内容,但是我的更新没有初始工作时间更长同样,我的页面@shyju上确实有多个此表单的实例,所以可能是因为您提供的代码不知道从哪个表单获取数据?@user766266:您不是明确地说要序列化表单,而是要序列化clicked元素的父级。您可以发布JSFIDLE吗?请给表单一个name属性,然后重试。我在某个地方读到,缺少表单名称可能会阻止ajax post工作。如果这不起作用,并且
.on()
也不起作用,那么您可能必须在php脚本的输出中重新添加ajax(在脚本标记之间)。
 $uid = $_SESSION['oauth_id'];
   $id = mysql_real_escape_string($_POST['billid']);       
   $bill = mysql_real_escape_string($_POST['total']);
   $billname = mysql_real_escape_string($_POST['bill-name']);
   $billdescription = mysql_real_escape_string($_POST['bill-description']);
   $billcolour  = mysql_real_escape_string($_POST['bill-category']);
   $rand = mysql_real_escape_string($_POST['rand2']);



        #update Record
       $query = mysql_query("UPDATE `outgoings` SET id = '$id', user_id = '$uid', bill = '$bill', bill_name = '$billname', bill_description = '$billdescription', bill_colour = '$billcolour', rand = '$rand' WHERE user_id = '$uid' AND rand = '$rand' ") or die(mysql_error());






         Print "<span class='cost'>&pound;".$bill . "</span> ";
         Print "<h4 class='bill-name'>".$billname . "</h4> ";
         Print "<p class='bill-details'><span class='bill-category'>".$billdescription . "</span> "; 
         Print "<span class='bill-description'>". $billcolour . "</span></p>"; 
     echo "<a href='#' class='edit-bill'>edit</a> 

         <form class='bill-upd show'>
            <input type='hidden' value='".$rand."' name='rand2' id='rand2'>
            <input type='hidden' value='".$billname."' name='billid' id='billid''>
            Total <input type='text' title='".$bill."' id='total' name='total' value='".$bill."'/><br />
            Bill name<input type='text' id='bill-name' name='bill-name' value='".$billname."'/><br />
           bill descriptiion <input type='text' id='bill-description' name='bill-description' value='".$billdescription."'/><br />
            bill colour<input type='text' id='bill-colour' name='bill-colour'value='".$billcolour."'/>
          <input type='button' value='Save' class='bill-upd-submit' />
        </form>   

         <form class='delete-bill'>
             <input type='hidden' value='".$rand."' name='rand2' id='rand2'>

        <input type='button' value='delete' class='delete' />
        </form>   

         "; 
$(function(){
    $(document).on("click",".bill-upd-submit").click(function(e) {
        e.preventDefault();
        var elem = $(this);
        $.post("update_bill.php", elem.parent(".bill-upd").serialize(), function(data){
           elem.closest('li').html(data);
        });    
     });
 });