1

想知道是否有人可以帮助我。我对 Ajax 几乎一无所知,经过多次尝试将我的 User1_id 和 Text 传递到我的 insert.php 之后,我无法将我想要的数据插入到我的数据库中。

正如我的 profile.php 和 insert.php 所代表的那样,表单提交到数据库,但是当用户提交表单时,它会导航到 insert.php,并且宁愿让 Ajax 发送数据并完全保留在 Profile.php 上有时,我觉得在创建此类功能时这是一种更好的方法。

我想知道是否有人可以指导我朝着正确的方向前进。

Profile.php 表单

<form id="FormId" action="" method="get">
    <input type="hidden" value="<? echo $user1_id ?>">
        <textarea placeholder="Whats New??" id="FormId" name="status"></textarea>
            <input type="submit" name="Submit" value="Submit">
            </form>

插入.php

    <?
    session_start();
    ini_set('display_errors',1);
    error_reporting(E_ALL|E_STRICT);
    include "db_connect.php";
    if (isset($_GET['status']))  {
         $status = $_GET['status'];
    }
    $user1_id=$_SESSION['id'];



if ($_GET['status']) {
$query = mysql_query("INSERT INTO feed (status,user1_id) VALUES ('$status', '$user1_id')")  or die (mysql_error());
if($query){
    echo "Posted Into Database";
}

exit();
}
?> 

我知道我需要与此类似的东西。但我认为我更多地停留在 var/data 部分。

$("form#myFormId").submit(function() {
    var mydata = $("form#myFormId").serialize();
    alert(mydata); // it's only for test
    $.ajax({
        type: "GET",
        url: "insert.php",
        data: mydata,
        success: function(response, textStatus, xhr) {
            alert("success");
        },
        error: function(xhr, textStatus, errorThrown) {
            alert("error");
        }
    });
    return false;
});

但不知道该怎么办。

任何指导表示赞赏。不要求任何人为我编写代码。但欢迎好的方向。

谢谢。

4

2 回答 2

1

将您的 ajax 部分更改为:

$("form#myFormId").submit(function(e) {
  e.preventDefault();  //prevent default submit
  ........

你的隐藏输入应该有名字

<input name="userId" type="hidden" value="<? echo $user1_id ?>">

在php中,

$userId = $_GET["userId"];

更改 textarea 的 id,它与您的 formid 相同,并且 ids 需要是唯一的,因此更改您的 textarea id,您可以尝试将数据传递为:

$.ajax({
        type: "GET",
        url: "insert.php",
        data:"status="+$("#yourTextareaId").val()+"&userId="+$("#yourHiddenInputId").val(),
        ......
于 2012-06-26T11:34:42.660 回答
0

只想对你们俩的时间和帮助表示感谢。我重新编写了代码,现在可以正常工作了。

这是最终代码 PROFILE.PHP/JS

<script type="text/javascript">

function createstatus(content){
$.post("insert.php", { user1_id: content } );
refreshstream();
}

function createwallpost(content,user1_id){

$.ajax({
   type: "POST",
   url: "insert.php",
   data: "status="+content+"&user1_id="+user1_id,
   success: function(){
     document.location = document.location;
   }
 });

}
</script>

    <form action="insert.php" method="POST" target="ifr1" class="form_statusinput">
        <input type="hidden" name="user1_id" value="<?php echo $user1_id ?>">
        <input type="text" name="status" id="status" class="homescreen_status_input" placeholder="Say something">
        <iframe name="ifr1" id="ifr1" style="display:none;"></iframe>
    </form>

插入.PHP

<?
session_start();
include "db_connect.php";
if (isset($_POST['status']))  {
     $status = $_POST['status'];
}

$user1_id = $_POST['user1_id'];


if ($_POST['status']) {
$query = mysql_query("INSERT INTO feed (status,user1_id) VALUES ('$status', '$user1_id')")  or die (mysql_error());
if($query){
    echo "Posted Into Database";
}

exit();
} 


?> 

我决定使用 post 而不是 GET 方法,因为我觉得它更安全并且可以顺利传递更多信息。再次感谢。

于 2012-06-26T23:25:20.550 回答