想知道是否有人可以帮助我。我几乎不了解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>
Insert.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;
});
但不知道如何去做。
任何指导表示赞赏。不要求任何人为我编写代码。但欢迎良好的方向。
感谢。
答案 0 :(得分: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相同,ID必须是唯一的, 所以改变你的textarea id,你可以尝试传递数据:
$.ajax({
type: "GET",
url: "insert.php",
data:"status="+$("#yourTextareaId").val()+"&userId="+$("#yourHiddenInputId").val(),
......
答案 1 :(得分: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>
INSERT.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方法,因为我觉得它更安全并且可以顺利传递更多信息。 再次感谢。