首页 > 解决方案 > 将值传递给 $('form').submit(function ()

问题描述

我绝对是编程的初学者。在这里,我想将参数传递给$('form').submit(function () {. 只是我想将email值传递给.submit() function像这样创建的,

这是HTML代码,

<div id="friends">   
<?php

$query=$pdo->prepare("SELECT DISTINCT * FROM users as u
WHERE  EXISTS (SELECT * FROM appointment as a
                  WHERE u.user_id = a.user_id AND 
                  a.p_id= '".$_SESSION['p_id']."')");

$row=$query->execute();
$rs=$query->fetchAll(PDO::FETCH_OBJ);

foreach ($rs as $message){  
    $filename=  $message->image;
    $filepath="../../adminpanel/profile/blog/"; 
?> 
<div class="friend">  
<?php   
    printf(
        '<img class="inline-block" src="data:image/png;base64, %s" alt="user" />',
             base64_encode(file_get_contents($filepath.$filename ) )
    );  
?>
       <p>
            <strong> <?php        echo $message->username   ?></strong> <br>
            <span id="email"><?php  echo $message->email   ?></span>
       </p>
     <div class="status available"></div>
  </div>
<?php   } ?>

这是submit按钮的 HTML

<form class="" id="msgform" action="chat.php" method="post">        
    <div id="sendmessage">
        <input type="text" placeholder="Send message..."  class="textarea" name="message"/>
        <button id="send" class="textarea" ></button>
    </div>
</form>

下面是javascript代码,说明如何设置emailhtml出现。

 $(".friend").each(function(x){     
    $(this).click(function(){
                                                                
    var name = $(this).find("p strong").html();
    var email = $(this).find("p span").html();
                        
    LoadChat(email);
                                                    
    $("#profile p").html(name);
    $("#profile span").html(email);              
                         
     });    
    }); 

我已将此email变量传递给submit函数,但始终采用email最后一个用户。这是.submit将数据发送到的函数server

$('form').submit(function() {
  const email = <?= json_encode($message->email) ?>
  var message = $('.textarea').val();

  if ($(".textarea").val()) {

    $.post("handlers/messages.php", {
      action: "sendMessage",
      message: message,
      email: email
    }, function(response) {
      if (response == 1) {
        LoadChat();
        document.getElementById('msgform').reset();
      }
    });
  } else {
    myFunction();
  }
  return false;
})

只是我想将特定email值传递给submit函数。请帮助我可能会非常感谢并提前感谢。

标签: javascriptjquery

解决方案


$('form').submit(function() {
var email = $('#email').val();
var message = $('.textarea').val();

if ($(".textarea").val()) {

$.post("handlers/messages.php", {
  action: "sendMessage",
  message: message,
  email: email
}, function(response) {
  if (response == 1) {
    LoadChat();
    document.getElementById('msgform').reset();
  }
});
} else {
  myFunction();
}
return false;
})

您收到了由 php(服务器端)打印的电子邮件。您需要发送客户端或浏览器端的内容。

var email = $('#email').val();

这将解决您的问题


推荐阅读