2014-09-26 5 views
0

변수 그룹을 보내고 PDO를 사용하여 데이터베이스에 삽입하려고합니다. 그러나 페이지를 실행할 때 빈 메시지 상자가 나타나고 페이지에서 아무 것도 일어나지 않습니다.PHP 게시물 빈 메시지와 출력 없음을 표시합니다.

이것은 사용자 입력을받는 방법입니다.

<div class="caption1" contentEditable ="plaintext-only" id="edit1a"> 
     <P> COMPANY ON AMAZON WANTS YOU TO TEST </BR> AND REVIEW IT’S PRODUCT!</P> 

index.html을

<button id="save">Click to Save</button> 

<script type="text/javascript"> 
     $(document).ready(function(argument) { 
      $('#save').click(function(){ 
       // Get edit field value 
       $edit1a = $('#edit1a').html(); 
       $edit2a = $('#edit2a').html(); 
       $edit3a = $('#edit3a').html(); 
       $edit4a = $('#edit4a').html(); 
       $edit5a = $('#edit5a').html(); 
       $edit6a = $('#edit6a').html(); 
       $edit7a = $('#edit7a').html(); 
       $edit8a = $('#edit8a').html(); 
       $edit9a = $('#edit9a').html(); 
       $edit10a = $('#edit10a').html(); 
       $edit11a = $('#edit11a').html(); 
       $.ajax({ 
        url: 'get.php', 
        type: 'post', 
        data: {edit1: $edit1a, edit2: $edit2a, edit3: $edit3a, edit4: $edit4a, edit5: $edit5a, edit6: $edit6a, edit7: $edit7a, edit8: $edit8a, edit9: $edit9a, edit10: $edit10a, edit11: $edit11a,}, 
        datatype: 'html', 
        success: function(rsp){ 
          alert(rsp); 
         } 
       }); 
      }); 
     }); 
    </script> 

get.php

<?php 
//configuration 

$host = "localhost"; 
$name = "lpages"; 
$user = "root"; 
$pass = "****"; 

//connection 
$odb = new PDO("mysql:host=".$host.";dbname=".$name,$user,$pass); 

//new data 
if(isset($_POST['edit1a'])){ 
$edit1 = $_POST['edit1a']; 
$edit2 = $_POST['edit2a']; 
$edit3 = $_POST['edit3a']; 
$edit4 = $_POST['edit4a']; 
$edit5 = $_POST['edit5a']; 
$edit6 = $_POST['edit6a']; 
$edit7 = $_POST['edit7a']; 
$edit8 = $_POST['edit8a']; 
$edit9 = $_POST['edit9a']; 
$edit10 = $_POST['edit10a']; 
$edit11 = $_POST['edit11a']; 
$q  = "INSERT INTO webpages1(edit1, edit2, edit3, edit4, edit5, edit6, edit7, edit8,  edit9, edit10, edit11) 
      values (:edit1, :edit2, :edit3, :edit4, :edit5, :edit6, :edit7, :edit8,  :edit9, :edit10, :edit11);"; 
      $query = $odb->prepare($q); 
      $results = $query->execute(array(
        ":edit1"=>$edit1, 
        ":edit2"=>$edit2, 
       ":edit3"=>$edit3, 
       ":edit4"=>$edit4, 
       ":edit5"=>$edit5, 
       ":edit6"=>$edit6, 
       ":edit7"=>$edit7, 
       ":edit8"=>$edit8, 
       ":edit9"=>$edit9, 
       ":edit10"=>$edit10, 
       ":edit11"=>$edit11 
      )); 
     } 
     ?> 

나는, PDO는 어쩌면 나는 서식

+1

데이터를 전달하는 방식과 관련이 있다고 생각합니다. 데이터 : {edit1 : $ edit1a, .. .. 등등이 옳지 않아서 도큐멘트에 액세스 할 수 없습니다. – andyroo

+0

귀하의 PHP는 어떤 종류의 응답을 출력하지 않습니다. 당신의 j는 아마도 에러를 가지고있을 것입니다. (만약 그 필드가 폼 요소라면, .html()'이 아닌'.val()'이나 더 나은 아직''을 사용할 것입니다.양식 요소에 serialize()'를 사용하십시오. – Steve

+0

궁극적으로, 양식에 대한 HTML 마크 업을 보여 주면 질문에 대한 더 나은 답변을 얻을 수 있습니다. – Steve

답변

1

POST 키가 일치하지 않는다고 생각합니다.

당신이 보내는

{EDIT1 : $의 edit1a, EDIT2 : $의 edit2a, ...

하지만 PHP에서 당신이 검색 :

$ edit1 = $ _POST [ 'edit1a'];

edit1, edit2 등등 ...


그러나 가장 중요한 디버깅하는 방법을 알고있다이어야한다 :

$odb = new PDO("mysql:host=".$host.";dbname=".$name,$user,$pass); 
$odb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

가, 그렇지 않으면 당신은 우둔하다. $result 값을 가진 로직을 추가 할 수도 있습니다. 예를 들어

:

if(!$results){ 
    var_dump($query->error()); 
    exit(); 
} 

당신이 오류보고를 켤 경우 정의되지 않은 값에 관해서는, PHP는 말할 수 :

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

물론 다시 응답을 전송하는 것을 잊지 마세요 성공을 결정하기 위해 아약스 콜백.

+0

{edit1 : $ edit1a, edit2 : $ edit2a, .... Bingo! 나는 몇 가지 다른 것들을 바꿨지만 왜 내가 이것을 놓쳤는 지 전혀 몰랐다. 감사 – amazingacademy

1

음을 문제를 데 사용하는 비교적 새로운 오전 하나 들어, 당신은 PHP에서 아무것도 울리고 있지 않습니다. 다음을 추가하십시오 :

echo "success"; 

PHP 파일의 끝에. 그런 다음 JS에서 확인할 수 있습니다.

if (rsp == "success") { 
    alert("Success inserting into database!"); 
} 
+0

이 기능은 데이터를 데이터베이스에 삽입해야합니다. 인덱스 페이지의 저장 버튼은 페이지를 리디렉션하지 않고 그냥 ajax를 사용하여 데이터를 보냅니다. – amazingacademy

+2

$ query-> execute는 쿼리를 실행하지 않습니다? – Rossco

+0

당신이 맞습니다. 로스 코, 나는 그것을 놓쳤다. 내가 편집 할게. – Scott

관련 문제