PDA

View Full Version : ارسال و دریافت مقادیر کلید submit



abbas27
دوشنبه 28 مهر 1393, 20:47 عصر
سلام/یه فرم دارم با دو تا کلید از نوع
submit/من اطلاعات ورودی رو به روش jquery , ajax به صفحه form_action.php

ارسال میکنم ولی وقتی میخوام چک کنم که کدوم کلید انتخاب شده مقادیر خالی بر میگردونه/مقادیری که داخل تکس باکس وارد میکنم به این صفحه ارسال میشه ولی مقادیر کلیدها ارسال و دریافت نمیشه/چجوری بررسی کنم که کدوم کلید فشرده شده

این صفحه مقادیر ورودی رو دریات میکنهindex.php



$(document).ready(function() {

$("form#data").submit(function(){
var formData = new FormData($(this)[0]);
$.ajax({url:'form-action.php',
type: 'POST',data:formData,
async: false,success: function (data) {
alert(data)},
cache: false,
contentType: false,
processData: false });
return false;});
});

</script>
</head>
<body>
<div id="show">show</div>
<div id="form">
<form id="data" name="data" method="post" enctype="multipart/form-data">
<p>
<input type="text" name="first" value="Bob" id="first" />
</p>
<p>
<input type="text" name="middle" value="James" id="middle" />
</p>
<p>
<input name="image" type="file" />
</p>
<button id="reg" name="reg">Submit</button>
<button id="send" name="send">send</button>
</form>
<p>&nbsp;</p>
</div>
</body>
</html>




اینم form-action.php




<?php

echo($_POST['first']);
echo($_POST['reg']);
?>

abbas27
دوشنبه 28 مهر 1393, 22:47 عصر
آقایون یه جوابی بدن که کارم گیر کرده.ممنون میشم

abbas27
سه شنبه 29 مهر 1393, 10:20 صبح
آقایون یه جوابی بدن که کارم گیر کرده.ممنون میشم
کسی نبود؟این همه برنامه نویس داریما

nazanin_asadi_1
سه شنبه 29 مهر 1393, 10:27 صبح
دوست عزیز این مشکل شما ربطی به php نداره مشکل شما درک درست html هستش
توی html نمی تونی مقدار button رو ارسال کنی

اگه میخوای مقدار یک باتن یا یک div را هر چیزی رو بفرستی باید از jquery کمک بگیری و بعد از استخراج مقدارش اون رو ارسال کنی

nazanin_asadi_1
سه شنبه 29 مهر 1393, 10:33 صبح
نمونه اینو واست نوشتم

این فایل اول هستش :

<div id="send1">
<input type="text" name="name1"><br>
<input type="hidden" name="name2"><br>
<input type="checkbox" name="name3"><br>
<button onClick="send()" >send</button>
</div>
<script>
send=function(){
$.post('url',$("#send1").serialize(),function(data,state){
if(state=='success') alert(data);
});
}
</script>

این کد رو هم توی url مقصد قرار بده تا مقدارها رو با نامها مشاهده کنی

<?php
print_r($_POST);
?>

abbas27
سه شنبه 29 مهر 1393, 10:50 صبح
124774
دوست عزیز من یه فرم دارم که4تا ورودی داره و2تا کلید و یه fileجهت آپلود که همشون رو توی فرم قرار دادم.با این کدی که خودم گذاشتم میگه اگه کلید submit انتخاب شد فلان کار رو انجام بده.در ضمن چون از فایل استفاده میکنم باید نوع ارسال فرم واسه آپلود مشخص بشه.نهایتا همه مقادیر ارسال میشه بجز مقادیر دو تا کلید submit/میخوام مقادیر کلیدها هم ارسال کنم که اگه کلید ثبت انتخاب شدمشخصات کاربر ثبت بشه اگه کلید حذف انتخاب شد حذف کنه.

nazanin_asadi_1
سه شنبه 29 مهر 1393, 12:16 عصر
مشکل شما در درک ساختار html هستش در ساده ترین حالت ممکن از روش زیر میتونید استفاده کنید

<div id="send1">
<input type="text" name="name1"><br>
<input id="send_1_1" type="hidden" name="name2"><br>
<input type="checkbox" name="name3"><br>
<button onClick="send(1)">ثبت</button>
<button onClick="send(2)">حذف</button>
</div>
<script>
send=function(i){
$("#send_1_1").val(i);
$.post('url',$("#send1").serialize(),function(data,state){
if(state=='success') alert(data);
});
}
</script>

کد زیاد پیچیده نیست و اگه جایی از کد رو متوجه نشدی بگو

abbas27
سه شنبه 29 مهر 1393, 14:35 عصر
این کدها جواب نمیده/روش دیگه سراغ ندارین با ajax یا jquery

abbas27
سه شنبه 29 مهر 1393, 20:04 عصر
آقایون کسی نبود جواب بده؟هر سوالی میپرسم که کسی جواب نمیده!!!

nazanin_asadi_1
سه شنبه 29 مهر 1393, 20:14 عصر
این کدها جواب نمیده/روش دیگه سراغ ندارین با ajax یا jquery
آخه شما چطوری امتحان کردین که دیدین جواب نمیده ؟

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

شما درک درستی از html ندارین و بزرگترین مشکلتون هم همینه
از اون گذشته فکر کنم در php هم مشکل دارین که بدون هیچ دلیلی میگین کدها کار نمیکنه

شما یه فایل با نام t1.php ایجاد کن و کد زیر رو توش بزار البته اول فایل باید کتابخانه jquery رو پیوست کنی (سوتی نده ) تنظیمات UTF8 و بقیه چیزها رو برای فایل تنظیم میکنی

<div id="send1">
<input id="send_1_1" type="hidden" name="name1"><br>
<button onClick="send(1)">ثبت</button>
<button onClick="send(2)">حذف</button>
</div>
<script>
send=function(i){
$("#send_1_1").val(i);
$.post('t2.php',$("#send1").serialize(),function(data,state){
if(state=='success') alert(data);
});
}
</script>


خب حالا فایل T2.php رو هم کنار اون فایل بزار و کد زیر رو توش بنویس

<?php
print_r($_POST);
?>


خب الان اگه دکمه "ثبت" رو بزنی خروجی زیر رو بهت میده

Array
(
[name1] => 1
)



اگه دکمه "حذف" رو بزنی خروجی زیر رو میده

Array
(
[name1] => 2
)


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

abbas27
چهارشنبه 30 مهر 1393, 15:11 عصر
ممنون از دوست عزیزم که جواب دادن/من قسمت html رو گذاشتم تو فرم و یه inputfile بهش اضافه کردم همه مقادیر ارسال میشه بجز inputfile/چجوری میشه inputfileرو ارسال کرد که بشه آپلود رو سمت سرور انجام بدم؟







<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

send=function(i){
$("#send_1_1").val(i);


$.post('form-action.php',$("#send1").serialize(),function(data,state){

alert(data);
});
}
});
</script>

<body>
<form enctype="multipart/form-data" id="send1">
<p>
<input type="text" name="txt" id="txt">
<br>
<input id="send_1_1" type="hidden" name="name2">
</p>
<p><br>
<input type="checkbox" name="name3"><br>
<label for="fileField">File:</label>
<input type="file" name="file" id="file">
</p>
</form>
<button onClick="send(1)">ثبت</button>
<button onClick="send(2)">حذف</button>
</div>
</body>




form-action.php


<?php
print_r($_POST);
?>

nazanin_asadi_1
چهارشنبه 30 مهر 1393, 18:28 عصر
تست نکردم خودت تست کن ببین کار میکنه یا نه

طبق روش قبل یه فایل با نام t1.php درست کن و کد زیر رو توش قرار بده

<form id="send1" onSubmit="return false;">

<input id="send_1_1" type="hidden" name="name1"><br>
<input type="text" name="title" value=""><br />
<input name="displayImg[]" type="file" /><br />

<button onClick="send(1)">ثبت</button>
<button onClick="send(2)">حذف</button>

</form>

<script>
send=function(i){
$("#send_1_1").val(i);

var formData = new FormData($("#send1")[0]);

$.ajax({
url: 't2.php',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (data) {
alert(data);
}
});
}

</script>

یک فایل هم با نام t2.php ایجاد کن و کد زیر رو توش بزار

print_r($_POST);

abbas27
چهارشنبه 30 مهر 1393, 19:48 عصر
تشکر/دستت درد نکنه/همین میخواستم/:خجالت:/ممنوووووووووووووووووووووو ونم