PHP Jquery Ajax POST调用,不行

时间:2017-03-20 15:22:20

标签: php jquery ajax

正如标题所说,我已多次尝试使其正常工作,但没有成功......警报窗口始终显示html部分的全部来源。 我哪里错了?请帮我。 感谢。

PHP:

<?php
if (isset($_POST['send'])) {
$file = $_POST['fblink'];
$contents = file_get_contents($file);

echo $_POST['fblink'];
exit;
}

?>

HTML:

<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.min.js"></script>
<script>
$(document).ready(function() {
    $("input#invia").click(function(e) {
        if( !confirm('Are you sure?')) {
        return false;
        }
        var fbvideo = $("#videolink").val();

        $.ajax({
        type: 'POST',
        data: fbvideo ,
        cache: false,
        //dataType: "html",
        success: function(test){

            alert(test);
        }
        });
    e.preventDefault();
    });
});
</script>

</head>
<div style="position:relative; margin-top:2000px;">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input id="videolink" type="text" name="fblink" style="width:500px;">
<br>
<input id="invia" type="submit" name="send" value="Get Link!">
</form>
</div>

</html>

2 个答案:

答案 0 :(得分:1)

您必须指定要发送数据的网址。 它可以是手动的,也可以获取表单标记的action属性。

如果您需要一些额外的Please wait while we try to verify your browser...<br/>If you are stuck on this page disable your browser addons值,而不是表单中的输入,您可以将其添加到send的序列化表单值,其中formSerializedValues += "&item" + value;'是之前已定义为formSerializedValuesformSerializedValues = <form>.serialize()是您当前的表单)。

<form>

答案 1 :(得分:1)

您的问题是,您认为您的表单字段是使用ajax自动发送的。但是你必须将每一个定义到其中。

试试这段代码:

<script>
$(document).ready(function() {
    $("input#invia").click(function(e) {
        if( !confirm('Are you sure?')) {
        return false;
        }
        var fbvideo = $("#videolink").val();

        $.ajax({
        type: 'POST',
        data: {
            send: 1,
            fblink: fbvideo
        },
        cache: false,
        //dataType: "html",
        success: function(test){

            alert(test);
        }
        });
    e.preventDefault();
    });
});
</script>

jQuery不是为自己定义每个输入,而是使用方法.serialize(),使用此方法可以轻松读取表单的所有输入。 查看docs

也许你使用.submit()而不是点击提交按钮。因为用户有多种方式提交表单。

$("input#invia").closest('form').submit(function(e) {