2017-02-06 1 views
1

this one과 같은 질문이 많지만 제대로 작동하지는 않습니다. 나는 이것이 올바른 만들기 위해 무엇을해야하는지조차 코멘트는 .. Meddelanden.php페이지를 새로 고침하지 않고 양식 제출

<?php 
    session_start(); 
    $meddelanden = $_POST['message']; 
    $username = $_SESSION['user']; 
    include ("connect.php"); 
    $sql = $con->prepare('INSERT INTO messages (message,username) VALUES (?,?)'); 
    $sql->bind_param("ss",$meddelanden,$username); 
    $sql->execute(); 
    $sql->close(); 
    $con->close(); 
?> 

스크립트 (

<form action="meddelanden.php" id="fromen2" method="post"> 
    <input type="text" name="message" id="type" autocomplete="off" placeholder="type your chat message"> 
    <input class="lg" type="submit" name="submit" value="Send"> 
</form> 

내가 jQuery를 80 %처럼 이해하기 때문에 충분하다 엉망 일까지 내 머리)에 대한

$('#fromen2').submit(function(){ 

    $.ajax({ 
     type: 'POST', 
     url: meddelanded.php, 
     data: { 
      user: username,  // <-- is this what i should write in data?! 
      message: message  // <-- and this?! 
     }, 
     success: function(msg){       
      alert('Message Sent'); 
     } 
    }); 

    return false; 
}); 

그래서, 내 문제는 내가 data:에 작성해야 무엇이며, 나는이 거기에 입력되어있는 무슨 단서가 없다! 아무도 나를 도울 수 없나요? jQuery를 serialize 사용

+0

('$ 사용자 이름을' '$이 meddelanden'), –

+0

@BrianSmith는 수없이 다음 bind_param()를 생략 값으로 직접 변수를 $ meddelanden와 $ 사용자 이름을 넣어보십시오 mysql 주사를 수행하려면 –

+0

클릭 한 후에 제출하지 않도록 단추를 변경해야합니다. 귀하의 아약스는 클릭 이벤트입니다. –

답변

0

그냥 직렬화 폼 데이터 :

$('#fromen2').submit(function(){ 

    $.ajax({ 
     type: 'POST', 
     url: meddelanded.php, 
     data: $(this).serialize() 
     success: function(msg){ 

      alert('Message Sent'); 
     } 
    }); 

    return false; 
}) 

을;

+0

저에게 맞지 않는 양식은 아직 제출 중입니다. –

+0

submit formd 요소가 이미 DOM에있을 때 javascript 코드가 추가되었는지 확인하십시오. Submit 버튼 안에'console.log (this)'를 추가하여 submit 버튼을 클릭했을 때이 코드가 전혀 실행되지 않았는지 확인할 수 있습니다. 예를 들어이 js 코드를 머리에 넣었다면 작동하지 않습니다. –

1

다음과 같이 시도해보십시오. 그래도 그걸로 주위를 어지럽 힐 수 있습니다. 먼저 제출 버튼을 눌렀을 때 양식이 자동으로 제출되지 않도록 차단 한 다음 사용자가 입력 한 값을 메시지에 사용하고 의 값을 data에 입력했습니다. 희망이 도움이됩니다.

$('#fromen2').submit(function(e){ 
e.preventDefault(); 
var userMessage = $('#messageInput').val(); 

$.ajax({ 
    type: 'POST', 
    url: meddelanded.php, 
    data: { 
    //You dont need to send user data becaues you are setting the user variable with $_SESSION in php file 
    message: userMessage  
    }, 
    success: function(msg){ 


    alert('Message Sent'); 

     } 
    }); 

return false; 
}); 

HTML이

<form id="fromen2" method="post"> 
     <input type="text" id = "messageInput" autocomplete="off" placeholder="type your chat message"> 
     <input class = "lg" type="submit" name="submit" value="Send"> 
    </form> 

또는 대신 이벤트로 .submit()를 사용하는 양식에서 데이터를 검색하고 AJAX와 데이터를 게시 할 것 onclick 이벤트에 함수를 추가 할 수 있습니다 귀하의 PHP 스크립트.

$('#submitButton').on('click', function(e){ 
e.preventDefault(); 
var userMessage = $('#messageInput').val(); 

$.ajax({ 
type: 'POST', 
url: meddelanded.php, 
data: { 
    //You dont need to send user data becaues you are setting the user variable with $_SESSION in php file 
    message: userMessage  
}, 
    success: function(msg){ 


    alert('Message Sent'); 

    } 
    }); 
}); 

HTML

<form id="fromen2"> 
    <input type="text" id = "messageInput" autocomplete="off" placeholder="type your chat message"> 
    <input class = "lg" id="submitButton" name="submit" value="Send"> 
</form> 
+0

이 작동하지 않으면 url 입력란을 수정하더라도 메시지가 전송되지 않습니다. –

관련 문제