PDA

View Full Version : درج در دیتابیس با pdo



negar442
چهارشنبه 06 اسفند 1393, 12:20 عصر
مشکل این کدها چیه ؟ چرا بعد از کلیک دکمه اطلاعات در دیتابیس درج نمی شه؟




<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>a</title>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js' type="text/javascript"></script>


<script type="text/javascript">
$(document).ready(function()
{ $('#my').submit(function()
{ $.ajax(
{ url: "addnews.php",
data:null,
type: "post" context: document.body}
).done(function() {
alert("ddf");});
});});
</script>

</head><body>
<form method="post" action="" id="my" >
<input type="submit" id="btnaddcat" name="btnaddcat" value="ok" />
</form>
</body></html>

کدهای پی اچ پی addnews.php



<?php
include "config.php";
$stmt = $dbh->prepare ("INSERT INTO category (cat) VALUES (:f-name)");
$stmt -> bindParam(':f-name', 'سلام');$stmt -> execute();
?>



در کل شما اگه بخواین بعد رویداد کلیک اطلاعاتی رو در جدول درج کنید از چه کدی استفاده می کنید؟ config.php هم مشکلی نداره و در جاهای دیگه درست کار می کنه.

hamedarian2009
چهارشنبه 06 اسفند 1393, 13:07 عصر
دوتا اشکال داشتین یکی اینکه بعد type ویرگول نزاشتین و دومی اینکه جلوی حالت default سابمیت فرم رو نگرفتین کد ای جکس رو اینجوری بنویسین


$(document).ready(function(){
$('#my').submit(function(e){
e.preventDefault();
$.ajax({
url: "addnews.php",
data:null,
type: "post",
context: document.body
}
).done(function() {
alert("ddf");});
});
});

negar442
چهارشنبه 06 اسفند 1393, 17:00 عصر
کدهای جی کوئری درست شده ولی باز هم به جدول چیزی اضافه نمی شه!

hamedarian2009
چهارشنبه 06 اسفند 1393, 17:51 عصر
اگه اضافه نمیشه احتمالا کوپریتون مشکلی داره یکبار به صورت دستی توی phpmyadmin اینسرت کنید و دستور اسکیوال تولید شده رو استفاده کنید ببینید مشکلتون حل میشه

negar442
چهارشنبه 06 اسفند 1393, 19:00 عصر
اگه اضافه نمیشه احتمالا کوپریتون مشکلی داره یکبار به صورت دستی توی phpmyadmin اینسرت کنید و دستور اسکیوال تولید شده رو استفاده کنید ببینید مشکلتون حل میشه

کوئری مشکلی نداره ولی باز هم نتیجه نگرفتم. دیگه خودم هم موندم توش ! میشه لطف کنید یک کد ساده از اینسرت pdo و کدهای جی کوئریش رو بزارین؟

Tarragon
چهارشنبه 06 اسفند 1393, 20:01 عصر
شما صفحه PHP رو در مرورگر مستقیم باز کنید. اگر مشکلی نیست بعد برید سمت Ajax کردن اون.
الان addnews.php رو مستقیم باز کنید ببینید چیزی به دیتابیس اضافه می شه یا نه! اگر نشد با ابزار DeBug خود PDO ببینید مشکل کجاست؟!

negar442
چهارشنبه 06 اسفند 1393, 20:54 عصر
با تشکر از ارتش سایبری ایران به خصوص سایت برنامه نویس و همه دوستان مشکلم حل شد . حالا اگه بخوام صفحه سابمیت بشه یعنی بدون ای جکس بعد از کلیک دکمه درج در جدول انجام بشه چی کار باید کرد؟

hamedarian2009
چهارشنبه 06 اسفند 1393, 23:17 عصر
با تشکر از ارتش سایبری ایران به خصوص سایت برنامه نویس و همه دوستان مشکلم حل شد . حالا اگه بخوام صفحه سابمیت بشه یعنی بدون ای جکس بعد از کلیک دکمه درج در جدول انجام بشه چی کار باید کرد؟

خب کد ای جکس رو بردارین سابمیت میشه دیگه منظور دیگه ای دارین؟

negar442
چهارشنبه 06 اسفند 1393, 23:52 عصر
اگه چند تا دکمه باشه که هر کدوم کار خاصی رو انجام بده اونوقت باید چی کار کرد؟ ضمن اینکه من می خوام بعد از کلیک کدهای صفحه addnews.php اجرا بشه و بعد از اجرا دوباره به صفحه ای که کدهای html دکمه ها قرار داره برگرده. به صفحه addnews.php کد header اضافه کردم ولی نشد!

MMSHFE
پنج شنبه 07 اسفند 1393, 08:03 صبح
اگه چند تا دکمه Submit دارین بهشون name یکسان و value متفاوت بدین و توی صفحه مقصد چک کنید ببینید کدومشون کلیک شده (با بررسی اندیس مربوطه در POST_$). مثال:

<input name="action" type="submit" value="Previous" />
<input name="action" type="submit" value="Next" />

switch($_POST['name']) {
case 'Previous':
// previous button is pressed
break;
case 'Next':
// next button is pressed
break;
}
برای اینکه دستور header هم کار کنه، باید فایلتون با کدگذاری UTF-8 without BOM ذخیره شده باشه. ضمنآً برای اطمینان از ریدایرکت صحیح، اینطوری کار کنید:

header('Location:form.html;');
exit('<meta http-equiv="Refresh" content="0;url=form.html" />');