提交表单时如何将值传递到同一页面?使用Ajax

时间:2016-06-25 04:46:25

标签: javascript php jquery ajax forms

基本上,表单必须将数据发送到我的数据库,当用户提交表单而不刷新页面时,我的数据库信息应显示在同一页面上。我做错了什么,无法找到解决方法。并查看了所有问题,但无法弄清楚。谢谢你的帮助。

import re

fin=open("aboveE1.txt",'r', encoding='UTF-8')    
transformed = ''

for line in fin:
    transformed += re.sub(r'\b(?:never|no|nothing|nowhere|noone|none|not|havent|hasnt|hadnt|cant|couldnt|shouldnt|wont|wouldnt|dont|doesnt|didnt|isnt|arent|aint)\b[\w\s]+[^\w\s]', 
    lambda match: re.sub(r'(\s+)(\w+)', r'\1NEG_\2', match.group(0)), 
    line,
    flags=re.IGNORECASE)
    # No need to append '\n' to 'transformed'
    # because the line returned via the iterator includes the '\n'

fin.close()

tweet2.php文件

 <div  id="tweetSpace">
      <form id="formTweet" method="post" >
        <textarea id="areaTweet" name="message" rows="2" cols="120" placeholder="Write your tweet here..."></textarea>
        <br>
        <input id="sendTweet" type="submit" value="Send">
      </form>
    </div>

    <div id="txtHint"></div>

<script>
$("#sendTweet").on("submit", function(e){


    var tweet = $('areaTweet').val();
    var update = $('#txtHint');

    $.ajax({
        type: 'POST',
        url: 'tweet2.php',
        data: , tweet,  
        success:function(html){
           update.html(html);
        }
    });
});


</script>

4 个答案:

答案 0 :(得分:0)

在推文之前你的ajax中有一个额外的逗号吗? data: , tweet,

如果是这样它就不会起作用。应为data: tweet,

答案 1 :(得分:0)

您不想刷新页面,因此必须使用preventDefault,但它只能使用表单ID。因此需要更改表单ID的提交按钮ID。第二件事是您的数据格式函数必须像json {{1 }}

{key : value}

我认为您需要修改 tweet2.php

$("#formTweet").on("submit", function(e){

e.preventDefault(); //prevent refresh page
var tweet = $('#areaTweet').val();
var update = $('#txtHint');

$.ajax({
    type: 'POST',
    url: 'tweet2.php',
    data: {tweet:tweet},  
    success:function(html){
       update.html(html);
    }
});
});

答案 2 :(得分:0)

确保设置exit();在tweet2.php文件的末尾。然后只有你能得到回复。此外,您应该以数据的形式定义数据:{tweet:tweet}格式。 tweet变量将使用ajax到你的php文件。

$(&#34; #sendTweet&#34;)。on(&#34; submit&#34;,function(e){

var tweet = $('areaTweet').val();
var update = $('#txtHint');

$.ajax({
        type: 'POST',
        url: 'tweet2.php',
        data: {tweet:tweet},  
        success:function(html){
           update.html(html);
        }
    });
});

<强>已更新 而不是这个 var tweet = $('areaTweet').val();

使用

var tweet = $('#areaTweet').val();

答案 3 :(得分:0)

这是工作代码...注意所有更改都在2个文件中进行..

<强> HTML

<html>
<head>
    <title>Tweets</title>
</head>

<body>
    <div id="tweetSpace">
      <form id="formTweet" method="post" >
        <textarea id="areaTweet" name="message" rows="2" cols="120" placeholder="Write your tweet here..."></textarea>
        <br>
        <input id="sendTweet" type="button" value="Send">
      </form>
    </div>

    <div id="txtHint"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script>
  $("#sendTweet").click(function(e){

      var tweet = $('#areaTweet').val();
      var update = $('#txtHint');

      $.ajax({
          type: 'POST',
          data: {'tweet':tweet},
          url: 'tweet2.php',
          success:function(html){
             update.html(html);
          }
      });
  });
</script>

</body>
</html>

<强> tweet2.php

<?php 
session_start();
include 'connect.php';
/*
$servername = "localhost";
$username = "root";
$password = "";
$db = "sflow";
$conn = mysqli_connect($servername, $username, $password, $db); 
*/

$tweet = $_POST['tweet'];
$email = /*"sample@s.com";//*/$_SESSION['login_user'];
$sqlr  = "INSERT INTO tweets(tweet,member_email) VALUES ('$tweet','$email')";
$rqu   = mysqli_query($conn,$sqlr);

$x=0;
$arrayName = array();
$sql= "SELECT tweet FROM tweets WHERE member_email= '$email'";
$rq = mysqli_query($conn,$sql);
while($row = mysqli_fetch_assoc($rq)) {
           $arrayName[$x]  = $row["tweet"];
           $x=$x+1;
}

for($k = 0; $k < $x; $k++)
echo '<p>'.$arrayName[$k].'</p>';
?>

样本表

CREATE TABLE IF NOT EXISTS `tweets` (
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `tweet` varchar(255) NOT NULL,
  `member_email` varchar(255) NOT NULL,
  PRIMARY KEY (`ID`),
  UNIQUE KEY `sid_2` (`tweet`),
  KEY `sid` (`tweet`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `tweets`
--

INSERT INTO `tweets` (`ID`, `tweet`, `member_email`) VALUES
(1, 'sasa', 's@g.com'),
(2, 'fgfg', 'sample@s.com');