jQuery表单数据不发送

时间:2013-06-17 18:30:11

标签: php jquery ajax

这是jQuery ajax部分

function submitTic(){
    $('#form').html("<img src='/img/pleasewait.gif' />");
    namev = $("input[name=name]").val();
    console.log("Namev: "+namev);
    purpv = $("input[name=purp]").val();
    console.log("Purpv: "+namev);
    detailsv = $("textarea[name=details]").val();
    console.log("Detailsv: "+detailsv);
    tov = "<? echo $_GET['t'];?>";
    console.log("Tov: "+tov);
        $.ajax({
            url:"http://<?echo $location;?>/modules/Ticket/new/submit.php",
            type:"POST",
            data:{
                name: namev,
                purp: purpv,
                details: detailsv,
                to: tov
            }
        })
        .always(function(response){
            $('#form').html(response);
        });
}

表格看起来像这样

<div id='form'>
<form>
<table>
    <tr><td class='left'>*Name:</td><td><input type='text' name='name' size='40' required="required"></td></tr>
    <tr><td class='left'>*Purpose:</td><td><input type='text' name='purp' maxlength="100" size='40' placeholder="Example: <?echo $placeholder;?>" required="required"></td></tr>
    <tr><td class='left'>*Details:</td><td><textarea name="details" cols="45" rows="10" maxlength="1000" required="required"></textarea></td></tr>
    <tr><td colspan='2' align='center'><input type='button' onclick="submitTic();" value="Submit Ticket" id='submit' ></td></tr>
</table>
<span id='reqcap'>*Required</span>
<input type="hidden" name="for" value="<? echo $_GET['t'];?>"/>
</form>
</div>

我的问题是,当我提交表单并在另一端捕获它时,$ _POST数组中唯一的部分是“to”变量。我已经尝试将jQuery部分移动到数据中,我已经尝试了对变量进行硬编码的所有内容,因为这会破坏表单的目的。

在控制台中,我可以使用$ .val来拉它,但我无法分配给变量。我不知道是怎么回事。有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

通过该代码判断,您尝试从表单中获取值,但是您已使用加载图像替换整个表单,因此无法获取值。尝试做

namev = $("input[name=name]").val();
console.log("Namev: "+namev);
purpv = $("input[name=purp]").val();
console.log("Purpv: "+namev);
detailsv = $("textarea[name=details]").val();
console.log("Detailsv: "+detailsv);
tov = "<? echo $_GET['t'];?>";
$('#form').html("<img src='/img/pleasewait.gif' />");

代替。注意

$('#form').html("<img src='/img/pleasewait.gif' />");

现在是最后一件事,而不是第一件