2014-09-10 2 views
0

X-editable을 사용하여 인라인 편집 기능이있는 테이블을 가지고 있으며 데이터베이스에 제출되는 값을 포함하여 모든 항목이 정상적으로 작동하지만 일부 이유로 내 echo가 else 섹션에 표시됩니다 . 여기 x-editable을 사용하여 데이터베이스에 URL 텍스트 삽입

require("config.php"); 

$userid = $_SESSION['user']['id']; 
$sql = "SELECT fb_url, tw_url, ggl_url FROM social_preferences WHERE user_id = :userID"; 
$stmt = $db->prepare($sql); 
$stmt->bindParam(":userID", $userid, PDO::PARAM_INT); 
$stmt->execute(); 
$result = $stmt->fetch(); 


$pk = $_POST['pk']; 
$name = $_POST['name']; 
$value = $_POST['value']; 

    if(!empty($value)) { 
      try // save user selection to the database 
       { 

       $stmt = $db->prepare("UPDATE social_preferences SET tw_url = :twurl WHERE user_id = :userID"); 
       $stmt->bindParam(":userID", $pk, PDO::PARAM_INT); 
       $stmt->bindParam(':twurl', $value); 
       $stmt->execute(); 

       header("Location: admin-social.php"); 
       die("Redirecting to admin-social.php"); 
       } catch(PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } 
    }else { 
     echo 'Something went wrong!'; 
     var_dump($value); 
    } 

내 HTML 코드입니다 : 여기

내 PHP 코드 모든 동작하는 것 같지만 내 반향을 표시하는 페이지로 리디렉션 위에 말했듯이

<a name="tw-url" id="tw-url" data-type="text" data-pk="<?php echo ($userid);?>" title="Edit"><?php echo ($result['tw_url']);?></a> 

Something went wrong! 값을 DB에 제출 했더라도 var_dump를 포함하여 값이 있는지 확인하고 NULL을 반환합니다. 누군가 나를 도울 수 있습니까? 데이터베이스에 올바른 값을 제출하지만 내 오류로 리디렉션되는 이유는 무엇입니까?

또한 어느 시점에서 데이터베이스로 보내나요? 저장 버튼이있는 양식의 표가 있지만 편집 가능한 텍스트를 열고 새 값을 제출하면 팝업에서 저장하거나 표 양식에서 저장 버튼을 클릭 할 때 데이터베이스로 전송됩니까? 귀하의 세부 정보가 DB에 삽입 할 때, 당신이이 경우에, 비우 설정 변수 $value 값을 같은 페이지로 리디렉션 header를 설정하고 else 문을 실행하기 때문에

+1

그래서 어떤 MySQL/PDO 오류가 발생합니까? –

+0

'href'는 일반적으로 GET으로 연관/실행 가능하며 POST로 전달하므로'if (isset ($ _POST [ 'mysocialurl']))'는 결코'set'되지 않습니다. –

+0

내가 뭘해야하는지에 대한 제안이 있으십니까? – iamthestreets

답변

1

else 문이 실행됩니다.

위의 대답은 header을 같은 페이지로 설정 한 경우에만 유효합니다.

+0

다음과 같이 제거했습니다 :'header ("Location : admin-social.php"); 내 코드에서 die ("admin-social.php로 리디렉션");하고 모든 것이 작동하는 것처럼 보입니다. 이 코드를 유지해야하는 이유가 있습니까? – iamthestreets

+0

일반적으로 다른 페이지로 리디렉션하려는 경우'header ("Location : filename.php")'를 사용하지만 데이터가 동일한 페이지에 게시 될 때 데이터를 제출할지 여부를 알기 위해 변수를 사용해야합니다. 예를 들면. 당신은 당신의'header ("Location : ..."); HTML 코드에서이'$ output' 변수를 사용하여 제출의 유효성을 검사 할 수 있습니다 : 'if (isset ($ output)) 및 $ output === "submitted") {echo "데이터가 제출되었습니다"; }' 템플릿에 따라 출력 메시지 스타일을 지정할 수 있습니다. –

+0

나는 당신이 위에 제안한 것을 시도했으나 효과가 없다. 나는 admin-social.php와 post.php를 가지고있다. admin-social.php는 html과 post.php와 관련이없는 다른 PHP를 표시하고 post.php는'$ output' 변수가 어디에 있는지 잘 모르겠다. admin-social.php에 변수를 전달 중입니다. 내 원래의 질문에 답을 했으니 까, 고마워. – iamthestreets