رفتن به مطلب

گرفتن یک سری اطلاعات از فرم


پست های پیشنهاد شده

سلام

اين اولين پست من هست در اين انجمن

يک سوال مهم داشتم در رابطه ي گرفتن value يک فرم از نوع راديو :

من يک جدول دارم به نام data

اين جدول فيلد هاي زير را داره:


ID
name
price

من با کد زير اطلاعات جدول بالا رو گرفتم و اون ها رو در فرم از نوع Radio Button نمايش دادم:


<script>
function set_pay(pay)
{document.getElementById('paydiv').innerHTML = "قيمت : "+pay;}
</script>
<?php
global $table_prefix;
$query = mysql_query("SELECT * FROM {$table_prefix}data");
while($row = mysql_fetch_assoc($query))
{echo "<input type='radio' onclick='set_pay(".$row['price'].")' name='dataform' value='".$row["ID"]."'>{$row["name"]}</br>";}
echo "<div id='paydiv'>قيمت :</div>";
?>

فرض ميکنيم خروجي کد بالا به صورت HTML به شکل زير باشه:


<input type='radio' onclick='set_pay(5000)' name='dataform' value=1'>نقره اي</br>

<input type='radio' onclick='set_pay(8000)' name='dataform' value='2'>طلايي</br>

بعد وقتي کاربر روي يکي از radio button هاي فرم کليک ميکنه و روي دکمه submit کليک ميکنه سه تا فيلد از جدول data که در بالا گفتم رو به صفحه فلان ارسال کنه

يعني مثلا اگه روي راديو باتون اول کليک کنه اطلاعات زير ارسال بشه


id = 1
name = نقره اي
price = 5000

چطوري ميشه کار هاي بالا رو انجام داد؟

لینک به ارسال

تو قسمت آخر , خب وقتی submit میکنید , value هر رادیو باتن که همون آیدی هست ارسال میشه . با یک سلکت میشه name و price رو هم درآورد .

ولی اگه منظورتون اینه که بدون submit انجام بشه , خوب باید از آجاکس استفاده بشه.

لینک به ارسال

به انجمن خوش امدید

شما میتوانید تمام مقادیر را در value input قرار دهید

و با حرفی جدا کنید

مثال:

5000|2|blue

سپس با تابع explode مقادیر را جدا و بررسی کنید

لینک به ارسال

به انجمن خوش امدید

شما میتوانید تمام مقادیر را در value input قرار دهید

و با حرفی جدا کنید

مثال:

5000|2|blue

سپس با تابع explode مقادیر را جدا و بررسی کنید

سلام

من زیاد آشنایی با پی اچ پی ندارم

همین روشی که گفتید رو با توجه به کد های بالا برام به طور ساده بنویسید

تشکر.

لینک به ارسال

سلام

با کد زیر همه رو در value رادیو باتون ریختم فقط مونده جدا کردنش که با شماست


$all_data = $row['ID'].'|'.$row['name'].'|'.$row['price'];

تشکر

لینک به ارسال

من فکر می کنم فرمتون یک ایراد داره یا من درست متوجه نشدم یک فیلد معمولا دارای یک ثابت و یک متغیره تا بتونه فیلد باشه ثابت فیلد هم که نیازی به ارسال نداره کافیه متغییر یا value پست بشه به name مربوطه این گرزینه سوم چطو.ری به وجود می آد البته در فرم شما به نظر من قیمت می تونه value باشه و id یک و دو اضافیه می شه روشن کنید این اعداد قراره چه چیزی را مشخص کنند

اگر آی دی ها ضریب تعداد هستند هم می تونند قبل از ارسال در قیمت ضرب بشند و هم می تونند فیلدی مجزا به نام تعداد داشته باشند تا در اسناد درج بشه و بشه راحت موجودی انبار گرفت و اگر آی دی شناسایی کالا هستند که باز هم نمی تونند متغییر باشند و به عنوان ثابت می تونند به name اضافه بشند

لینک به ارسال

من فکر می کنم فرمتون یک ایراد داره یا من درست متوجه نشدم یک فیلد معمولا دارای یک ثابت و یک متغیره تا بتونه فیلد باشه ثابت فیلد هم که نیازی به ارسال نداره کافیه متغییر یا value پست بشه به name مربوطه این گرزینه سوم چطو.ری به وجود می آد البته در فرم شما به نظر من قیمت می تونه value باشه و id یک و دو اضافیه می شه روشن کنید این اعداد قراره چه چیزی را مشخص کنند

اگر آی دی ها ضریب تعداد هستند هم می تونند قبل از ارسال در قیمت ضرب بشند و هم می تونند فیلدی مجزا به نام تعداد داشته باشند تا در اسناد درج بشه و بشه راحت موجودی انبار گرفت و اگر آی دی شناسایی کالا هستند که باز هم نمی تونند متغییر باشند و به عنوان ثابت می تونند به name اضافه بشند

سلام

دارم پلاگین اعضای ویژه رو به درگاه پی لاین متصل میکنم

id شناسه عضویت است

name نام نوع عضویت است

price قیمت عضویت است

id رو میخوام برای اینکه با اینکه با id کاربر insert کنم در جدول vip-users

name رو میخوام برای نمایش آن بعد از پرداخت موفق

price رو میخوام برای درگاه پرداخت

فقط این کد رو نوشتم تا این 3 رو ترکیب کنم و بعد از ارسال اون ها رو تجزیه کنم و بعد استفاده کنم

مشکلم اینه که چطور value رادیو باتون رو بگیرم و 3 تا کد رو جدا کنم


$all_data = $row['ID'].'|'.$row['name'].'|'.$row['price'];

فکر کنم با کد زیر بشه مقدار value را گرفت:


$post['نام فرم']

لینک به ارسال

سه تا رادیو باتن , باید یک نام داشته باشند با value های مختلف که آیدی رو شما قرار دادید بعنوان value

باید بنویسید


$_post['dataform']

که dataform نام رادیوباتن هست که شما انتخاب کردید .

اینطوری رادیوباتنی که انتخاب کردید , value اش گرفته میشه.

ویرایش شده توسط pary_daryayi
لینک به ارسال

سلام

سه تا رادیو باتن , باید یک نام داشته باشند با value های مختلف که آیدی رو شما قرار دادید بعنوان value

باید بنویسید


$_post['dataform']

که dataform نام رادیوباتن هست که شما انتخاب کردید .

اینطوری رادیوباتنی که انتخاب کردید , value اش گرفته میشه.

ببین کد زیر درسته؟


if($_POST['submit_payment']) {
if($_POST['user_name'] && $_POST['vip_roles']) {
$str = $_POST['vip_roles'];
print_r(explode('|', $str, 3));
}
}

با کد بالا مقدار فیلد به نام user_name رو گرفتم و بعدش مقدار value رادیو باتون و بعد رادیو باتون و میخوام از شکل


5000|2|blue

جدا کنم و هر کدوم داده های بالا رو استفاده کنم

لطفا کد بالا رو برام اصلاح کنید.

لینک به ارسال

ببینید مگه هر نوع عضویت قیمت خاص به خودش رو نداره؟

اگر داره نیازی نیست در فرم تکرار بشه شما می تونید در لیبل نوع عضویت و قیمت را کنار هم نمایش دهید و اگر id عضویت شماره ایست که بصورت خودکار پر می شود می تواند یک input با type=hidden باشد و در داخل فرم جاسازی شود تنها چیزی که لازمه کاربر خودش انتخاب کنه همون نوع و قیمته که می شه یک فیلد و می تونید قیمت را دوره ای کنید و یک فیلد هم برای دوره بگذارید که عددش در عدد قیمت ضرب می شه

برای شرطتون هم می تونید از


if(isset($_POST['any']))
{
....
}
else
{
...
}

استفاده کنید که صفحه بی ارور لود بشه

لینک به ارسال

سلام

دفعه اول این کارو کردم

ولی بهتره هر سه دسته اطلاعات رو با هم به صورت زیر ترکیب کنم و در value بریزم و اون رو ارسال کنم و بعد در صفحه اصلی مقدار value را بگیرم و سه دسته اطلاعات را جدا کنم و استفاده کنم


1|طلایی|50000

اولی که id هست و دومی نام عضویت هست و بعدی قیمت هست

من میخوام این 3 تا رو از هم جدا کنم

یک مثال کامل با کد برایم بنویسید

لینک به ارسال

کدی شبیه


<?php
if (is_user_logged_in()) {
global $user_ID;?>
<form method="post" action="آدرس اکشن">
<label id="Label1"> گروه برنزی مبلغ 1000 ریال
<input name="vip" type="radio" value="c" />
</label>
<label id="Label1"> گروه نقره ای مبلغ 10000 ریال
<input name="vip" type="radio" value="b" />
</label>
<label id="Label1"> گروه طلایی مبلغ 100000 ریال
<input name="vip" type="radio" value="a" />
</label>
<input name="userid" type="hidden" value="<?php echo $user_ID;?>"/>
<input type="submit" />
</form>
<?php };?>


و در اکشن


<?php
if(isset($_POST['vip'])) {
if($_POST['vip']=='a') :
echo 'گروه طلایی مبلغ 100000 ریال';
else
if($_POST['vip']=='b') :
echo 'گروه نقره ای مبلغ 10000 ریال';
else
echo 'گروه برنزی مبلغ 1000 ریال';
endif;
echo 'شناسه کاربر=' . $_POST['userid'];
};
?>

لینک به ارسال

سلام

باز هم مشکل داره

کد زیر رو ببین:


<script>
function set_pay(pay)
{
document.getElementById('paydiv').innerHTML = "قيمت : "+pay;
}
</script>
<?php
global $wpdb, $table_prefix;

$query = mysql_query("SELECT * FROM {$table_prefix}vip_roles");
while($row = mysql_fetch_assoc($query))
{
// get all data and send
$all_data = $row['ID'].'|'.$row['name'].'|'.$row['credit_required'];
echo "<input type='radio' onclick='set_pay(".$row['credit_required'].")' name='vip_roles' value='".$all_data."'>{$row["name"]}</br>";
}
echo "<div id='paydiv'>قیمت :</div>";
?>

هر کار میکنم id و name رو نمیتونم بگیرم

این هم کد اکشن :


if($_POST['submit_payment']) {
if($_POST['user_name'] && $_POST['vip_roles']) {
$data = explode("|", $_POST['vip_roles']);
$vip_role = $data[0];
add_option('vip_roles_' . $current_user->ID, $vip_role);
update_option('vip_roles_' . $current_user->ID, $vip_role);
//=========
$vip_price = $data[2];
add_option('vip_price_' . $current_user->ID, $vip_price);
update_option('vip_price_' . $current_user->ID, $vip_price);
//=========
$vip_name = $data[1];
add_option('vip_name_' . $current_user->ID, $vip_name);
update_option('vip_name_' . $current_user->ID, $vip_name);
}}

چکار کنم دوستان خیلی راه ها رو انتخاب کردم . من میخوام id نوع عضویت و id کاربر وردپرس رو باهم بدست بیارم که در query زیر وارد کنم اما id نوع عضویت مقدارش صفر وارد میشه


$user_ID = $current_user->ID;
$role_ID = get_option('vip_roles_' . $current_user->ID);
$role_name = get_option('vip_name_' . $current_user->ID);

global $wpdb, $table_prefix;
$check_name = $wpdb->query("SELECT * FROM {$table_prefix}vip_users WHERE username_ID = '".$user_ID."'");
if(!$check_name) {
$check = $wpdb->query("INSERT INTO {$table_prefix}vip_users (ID, username_ID, user_role) VALUES ('".$user_ID."', '".$user_ID."', '".$role_ID."')");
if($check) {
echo "<div class='success-payment'><p>" . sprintf(__('<br /> نوع کاربری شما: %s ', 'wp-vip'), $role_name) . sprintf(__('<br /> شماره رهگيري: %s ', 'wp-vip'), $payline->RefNumber)."</div></p>";
}

دوستان کمک فوری میخوام

لینک به ارسال

والا من اصلا متوجه نشدم

فقط زیادی پیچوندیش ببینید آی دی هایی که وجود دارند که نیازی به ارسال ندارند تنها چیزی هایی باید ارسال بشند که لازمه دونسته بشه و بصورت کلید باید بشه از روی کلیدها آی تم های مختلف رزو جمع آوری کرد و الا کافیه چهار نفر با هم بخوان ثبت نام کنند تا سایت ببیاد پایین

باز هم پیشنهاد می کنم به نمونه ای که عرض شد نگاه کنید و تستش کنید اگر هم فیلد دیگه ای لازمه اونرو هم اضافه کنید در قالب یک فیلد جدا

مفهوم فیلد داشتن یک نام و یک ولوه نه بیشتر

لینک به ارسال

مشکلتون اگر ارسال داده باشه که گفته شد

"id نوع عضویت" چی هست؟

لینک به ارسال

کدي شبيه


<?php
if (is_user_logged_in()) {
global $user_ID;?>
<form method="post" action="آدرس اکشن">
<label id="Label1"> گروه برنزي مبلغ 1000 ريال
<input name="vip" type="radio" value="c" />
</label>
<label id="Label1"> گروه نقره اي مبلغ 10000 ريال
<input name="vip" type="radio" value="b" />
</label>
<label id="Label1"> گروه طلايي مبلغ 100000 ريال
<input name="vip" type="radio" value="a" />
</label>
<input name="userid" type="hidden" value="<?php echo $user_ID;?>"/>
<input type="submit" />
</form>
<?php };?>


و در اکشن


<?php
if(isset($_POST['vip'])) {
if($_POST['vip']=='a') :
echo 'گروه طلايي مبلغ 100000 ريال';
else
if($_POST['vip']=='b') :
echo 'گروه نقره اي مبلغ 10000 ريال';
else
echo 'گروه برنزي مبلغ 1000 ريال';
endif;
echo 'شناسه کاربر=' . $_POST['userid'];
};
?>

سلام

اين پلاگين طوري هست که نوع عضويت ها رو کاربر در پنل مديريت وردپرس خودش اضافه ميکنه و به اين روشي که شما گفتيد نميشه پياده کرد.

مشکلتون اگر ارسال داده باشه که گفته شد

"id نوع عضويت" چي هست؟

ببين اصلا من از اين کارها چند تا تصوير ميگيرم تا بيشتر متوجه بشين:

post-2119-0-86476300-1370338458_thumb.jp

اين ليست نوع عضويت هايي که کاربر ايجاد ميکنه

post-2119-0-33104000-1370338454_thumb.jp

اين فرم عضويت و پرداختي که مشترک با اون خودشو تبديل به کاربر vip ميکنه

post-2119-0-06439600-1370338456_thumb.jp

اين فرم بعد از پرداخت موفق هست که نام نوع عضويت در اون نمايش داده نشده يعني اطلاعات فيلد به درستي گرفته نشده

post-2119-0-87844300-1370338463_thumb.jp

اين هم ليست اعضاي vip در پنل مديريت که ID به درستي در query وارد نشده و در نتيجه خالي است

post-2119-0-70486100-1370338950_thumb.jp

این هم تصویر phpmyadmin که مقدار id صفر هست

با توجه به کد هایی که در زیر هست مشکل من رو حل کنید

کد فرم پرداخت:


<script>
function set_pay(pay)
{
document.getElementById('paydiv').innerHTML = "قيمت : "+pay;
}
</script>
<?php
global $wpdb, $table_prefix;

$query = mysql_query("SELECT * FROM {$table_prefix}vip_roles");
while($row = mysql_fetch_assoc($query))
{
// get all data and send
$all_data = $row['ID'].'|'.$row['name'].'|'.$row['credit_required'];
echo "<input type='radio' onclick='set_pay(".$row['credit_required'].")' name='vip_roles' value='".$all_data."'>{$row["name"]}</br>";
}
echo "<div id='paydiv'>قیمت :</div>";
?>

این هم کد اکشن :


if($_POST['submit_payment']) {
if($_POST['user_name'] && $_POST['vip_roles']) {
$data = explode("|", $_POST['vip_roles']);
$vip_role = $data[0];
add_option('vip_roles_' . $current_user->ID, $vip_role);
update_option('vip_roles_' . $current_user->ID, $vip_role);
//=========
$vip_price = $data[2];
add_option('vip_price_' . $current_user->ID, $vip_price);
update_option('vip_price_' . $current_user->ID, $vip_price);
//=========
$vip_name = $data[1];
add_option('vip_name_' . $current_user->ID, $vip_name);
update_option('vip_name_' . $current_user->ID, $vip_name);
}}

این هم کد بعد از پرداخت موفق با user_ID و role_ID کاربر رو در جدول vip_users اضافه میکنه اما انگار role_ID وارد نمیشه


$user_ID = $current_user->ID;
$role_ID = get_option('vip_roles_' . $current_user->ID);
$role_name = get_option('vip_name_' . $current_user->ID);

global $wpdb, $table_prefix;
$check_name = $wpdb->query("SELECT * FROM {$table_prefix}vip_users WHERE username_ID = '".$user_ID."'");
if(!$check_name) {
$check = $wpdb->query("INSERT INTO {$table_prefix}vip_users (ID, username_ID, user_role) VALUES ('".$user_ID."', '".$user_ID."', '".$role_ID."')");
if($check) {
echo "<div class='success-payment'><p>" . sprintf(__('<br /> نوع کاربری شما: %s ', 'wp-vip'), $role_name) . sprintf(__('<br /> شماره رهگيري: %s ', 'wp-vip'), $payline->RefNumber)."</div></p>";
}

ویرایش شده توسط abolfazln
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...