次の形式で呼び出されるJSコードがあります。
//////////////// About Tab
$(document).ready(function(){
$("form#FanDetail").submit(function() {
// store the values from the form input box, then send via ajax below
var bio = $('#bio').val();
var dob = $('#dob').val();
var zip = $('#actualZip').val();
var occup = $('#actualOccup').val();
var fbkurl = $('#fbkurl').val();
var twiturl = $('#twiturl').val();
var phoNum = $('#phoNum').val();
$.post(
"../src/php/registration/about/submitvalues_about_tab.php",
$("form#FanDetail").serialize(),
function(){
$('form#FanDetail').hide(function(){
$('div.success').fadeIn();
});
});
return false;
});
});
jsによって呼び出されるPHPコード:
///////////////////////////////////////////////
######## Get Input to Submit ############## //
///////////////////////////////////////////////
$fanBio=$_POST['bio'];
$fanDob=$_POST['dob'];
$zipval=$_POST['zip'];
$occupval=$_POST['occup'];
$facebookurl=$_POST['fbkurl'];
$twitterurl=$_POST['twiturl'];
$phoneNum=$_POST['phoNum'];
$fanID=1;
try{
//$sessionvar = session_id();
### DB Connection already established above.
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth = $dbh->prepare("
UPDATE Fan
SET fanBio=:fanBio,fanDob=:fanDob,fanDetLocID=:zipval,occupID=:occupval,fanFbk=:facebookurl,fanTwit=:twitterurl,fanPho=:phoneNum
WHERE fanID=:fanID
");
$sth->bindParam(':fanBio', $fanBio);
$sth->bindParam(':fanDob', $fanDob);
$sth->bindParam(':zipval', $fanZip);
$sth->bindParam(':occupval', $fanOccup);
$sth->bindParam(':facebookurl', $fanFbk);
$sth->bindParam(':twitterurl', $fanTwit);
$sth->bindParam(':phoneNum', $fanPhone);
$sth->bindParam(':fanID', $fanID);
$sth->execute(array(':fanBio' => $fanBio,':fanDob' => $fanDob,':zipval' => $zipval,':occupval' => $occupval,':facebookurl' => $facebookurl,':twitterurl' => $twitterurl,':phoneNum' => $phoneNum,':fanID' => $fanID));
$sth->debugDumpParams(); ## debugging query
}
catch(PDOException $e){
echo "ERROR HAS HAPPENED CATCH{}";
file_put_contents('../../../../PDODBConnectionErrors.txt','ERROR: [submitvalues_about_tab.php] about '.$e->getMessage(), FILE_APPEND);
}
**RAWHTMLコード**
<form method="post" id="FanDetail">
<textarea id="bio" name="fan_bio" cols="27" rows="3"></textarea><br />
<input id="dob" name="fan_dob" value="(e.g. 01/05/1965)" onFocus="clearText(this)" /><br />
<div class="ui-widget">
<input id="zip" name="term" value="What is your Zipcode?" onFocus="clearText(this)" /><br />
<input id="actualZip" type="hidden" name="actualzipval" value="" />
</div><!--ui-widget :: zip -->
<div class="ui-widget">
<input id="occup" type="text" name="term2" value="e.g. Computer Programmer, etc" onFocus="clearText(this)" /><br />
<input id="actualOccup" type="hidden" name="actualOccupval" value="" />
</div><!--ui-widget :: occup -->
<input id="fbkurl" type="text" name="fan_fbk" value="e.g. SportsFan12" onFocus="clearText(this)" /><br />
<input id="twiturl" type="text" name="fan_twit" value="e.g. AboutSports2012" onFocus="clearText(this)" /><br />
<input id="phoNum" type="text" name="fan_pho" value="cell or home phone" onFocus="clearText(this)" /><br />
<input style="background-image:url('img/save.png');" type="submit" name="saveAbout" value="" id="submit" />
</form>
<div class="success" style="display:none;">Got it!</div>
私はもともと使用してみました:
Positioned Placeholders
:成功しません(以下に記載されているのと同じエラーが発生します)- のようにハードコードされた値を入力してクエリが機能し、正常に機能することを確認しました
UPDATE
Fan
。 catch{} block
(表示されていない)にあるファイルに何も含まれていないことを確認しました- ローカルホストがPDOを許可していることを確認しました。
SQLによる出力:[165] UPDATE Fan SET fanBio =:fanBio、fanDob =:fanDob、fanDetLocID =:zipval、occupID =:occupval、fanFbk =:facebookurl、fanTwit =:twitterurl、fanPho =:phoneNum WHERE fanID =:fanID
Params: 8
Key: Name: [7] :fanBio
paramno=-1
name=[7] ":fanBio"
is_param=1
param_type=2
Key: Name: [7] :fanDob
paramno=-1
name=[7] ":fanDob"
is_param=1
param_type=2
Key: Name: [7] :zipval
paramno=-1
name=[7] ":zipval"
is_param=1
param_type=2
*問題は、それでも行が更新されないことですが、$sth->debugDumpParams();
*を呼び出すことで応答が返されます。*上記の出力が得られます^^。この応答に何か問題がありますか?のファイルtry{}
は空白であり、エラーが書き込まれていないことに注意してください。