Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
各种jqueryajax表单问题_Jquery_Ajax - Fatal编程技术网

各种jqueryajax表单问题

各种jqueryajax表单问题,jquery,ajax,Jquery,Ajax,在让我的表单正确地将变量传递到PHP文件时,我遇到了各种各样的问题。即使它确实通过了,或者最终文件似乎没有发送。我哪里做错了 这是我的联系方式: <form method="post"> <div id="form_container"> <div id="form_quote" action=""> <input type="text" name="name" id="name" value="Name"

在让我的表单正确地将变量传递到PHP文件时,我遇到了各种各样的问题。即使它确实通过了,或者最终文件似乎没有发送。我哪里做错了

这是我的联系方式:

<form method="post">
    <div id="form_container">
        <div id="form_quote" action="">
            <input type="text" name="name" id="name" value="Name" title="Name"/>
            <input type="text" name="email" id="email" value="Email" title="Email"/>
            <input type="text" name="packages" id="packages" value="Packages" title="Packages" class="packages" />
            <!-- Package fields go here -->
            <input type="text" name="weight" id="weight" value="Total weight (kg)" title="Total weight (kg)" />
            <p class="ajaz"><input type="button" name="submit" id="submit" value="Request free callback" class="superbutton" /></p>
            <ul id="form_response"><li></li></ul>
        </div>
    </div>
</form>
然后我使用Ajax将数据发送到我的PHP文件:

jQuery('#form_quote input#submit').click(function() {
    jQuery('#form_quote p.ajaz').append('<img src="css/img/ajax-loader.gif" class="loaderIcon" alt="Loading..." />');

    var name = $('input#name').val();
    var email = $('input#email').val();
    var packages = $('input#packages').val();
    var packagedims = $('input#packagedims').serialize();
    var weight = $('input#weight').val();

    alert(packagedims + '&name=' + name + '&email=' + email + '&packages=' + packages +  '&weight=' + weight);

    jQuery.ajax({
        type: 'post',
        url: 'sendquote.php',

        // Serialize the form and post it to sendquote.php.
        data: 'name=' + name + '&email=' + email + '&packages=' + packages + /*'&packagedims=' +*/ packagedims + '&weight=' + weight,

        success: function(results) {
            jQuery('#form_quote img.loaderIcon').fadeOut(5000);
            jQuery('ul#form_response').html(results);
        }
    }); // end ajax
});
Packagedims似乎不像我想象的那样是一个数组,
也就是说,
packagedims[0]='something',packagedims[1]='something other'

在多个元素上使用相同的ID是无效的

您应该忽略以下内容中的id:

$('.app tbody').append( '<tr><td><span>Package '+ current_number_of_rows +'</span>: <input type="text" name="packagedims[' + current_number_of_rows + ']" value="Dimensions" id="packagedims" title="Package '+ current_number_of_rows +'" /></td></tr>' );

对于like
var name=$('input#name').val()
您可以像这样使用id:
var name=$('#name').val()。为什么在示例代码中注释掉了
/*'&packagedims='+*/
?您在生产中也对其进行了注释吗?@rav:在您的标记中,id为
#packagedims
的输入的确切位置,我找不到它!?位被注释掉的原因是.serialize()代码已经输出了该部分,所以我不需要这样做。我最初包含了它,但有人指出我不需要它。#packagedims的标记在.change事件侦听器中。因此,如果有人在#packages字段中输入2,.change事件侦听器会在一个表中添加一些额外的字段…非常感谢-在使用它之后,这确实完成了工作。我真的应该问,“name^”实际上做什么?@rav:
input[name^=“packagedims”]
将选择名称属性以
packagedims
开头的所有输入元素。这是最重要的。
$name = trim($_POST['name']);
$email = $_POST['email'];
$packages = $_POST['packages'];
$packagedims = $_POST['packagedims'];
$weight = $_POST['weight'];
$('.app tbody').append( '<tr><td><span>Package '+ current_number_of_rows +'</span>: <input type="text" name="packagedims[' + current_number_of_rows + ']" value="Dimensions" id="packagedims" title="Package '+ current_number_of_rows +'" /></td></tr>' );
$('.app tbody').append( '<tr><td><span>Package '+ current_number_of_rows +'</span>: <input type="text" name="packagedims[' + current_number_of_rows + ']" value="Dimensions" title="Package '+ current_number_of_rows +'" /></td></tr>' );
var packagedims = $('input[name^="packagedims"]').serialize();