اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

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


arastooms

ارسال جیسون با متد پست در html به php

4 ارسال در این موضوع قرار دارد

سلام به همه اساتید عزیز 
من یک فایل php ساده در هاستم بار گزاری کردم که 2 مقدار رو با متد post بهش ارسال میکنم ( یک json با دو مقدار) 
و به من یک جیسون برمیگردونه اگر موفقیت آمیز باشه

ارسال من هست 

{"name":"ali","family":"ahmadi"}

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

{"return":"ok","old":"29"}


حالا قصدم اینه که یه صفحه html بنویسم و رو هاست آپلود کنم با 2 تا ورودی 
اسم
فامیلی 
که این 2 مقدار رو که تایپ میکنم و دکمه ارسال رو میزنم بره به test.php به صورت جیسون داده رو ارسال کنه و جواب رو ببینم 

نکته اینجاست که متد Post  خالی رو بلدم و میتونم ارسال کنم تک تک ولی ارسال یک رشته جیسون رو بلد نیستم و نیاز به راهنمایی شما عزیزان دارم 
ممنون میشم من رو با کد html راهنمایی کنید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام ارسطوجان،

طبق چیزی که من متوجه شدم شما باید یک فرم در html طراحی کنید با دو ورودی دلخواه و بعد بجای action باید با جاوااسکریپت ورودی ها رو به جیسون تبدیل کنید و بعد با همون جاوااسکریپت پستش کنید به اسکریپت PHP

شیوه ایجاد یک شی در جاوااسکریپت:

var object2 = {"username":"user1","password":"pass1"};

که باید در کد بالا مقادیر pass1 و user1 رو با استفاده از متد document.getElementByClass یا byId و متد InnerHTML بدست بیارید و جایگزاری کنید

شیوه تبدیل شی به جیسون:

var jsonstr = JSON.stringify(object2);

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

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام. برای ارسال چرا از json می خواین استفاده کنید؟

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

<!DOCTYPE html>
<html>
<body>

a : <input type="text" id="a"><br>
b : <input type="text" id="b"><br>
<button type="button" onclick="loadDoc()">Request data</button>

<p id="demo"></p>

<script>

var a = document.getElementById("a");
var b = document.getElementById("b");

function loadDoc() {

	av = encodeURIComponent(a.value)
	bv = encodeURIComponent(b.value)
		
	var xhttp = new XMLHttpRequest();
	
	xhttp.onreadystatechange = function() {
		if (this.readyState == 4 && this.status == 200) {
		  document.getElementById("demo").innerHTML = this.responseText;
		}
	};
	
	xhttp.open("POST", "get.php", true);
	xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhttp.send("a="+av+"&b="+bv);
  
}


</script>

</body>
</html>

در مثال بالا مقدار بازگشتی به عنوان متن ساده چاپ میشه

حالا مقدار بازگشتی اگه json باشه

xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myObj = JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML = myObj.name;
    }
};

دریافت و چاپ اطلاعات ارسالی توسط php

<?php

$a = $_POST['a'];
$b = $_POST['b'];

echo "a=[$a] & b=[$b]";

?>

ساخت و چاپ json در php

<?php

class A{
	public $name ;
	public $age ;
	public $city ;
}

$myObj = new A();

	$myObj->name = "Ali";
	$myObj->age = 30;
	$myObj->city = "New York";

	$myJSON = json_encode($myObj);

	echo $myJSON;
	
?>

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

$myObj->name = $_POST['name'];

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اگه می خواین json ارسال کنید

تبدیل json به متن ساده که اقای amin گفتن.

در 2 ساعت قبل، AMiN.M7892 گفته است :

var jsonstr = JSON.stringify(object2);

متن ساده رو با ajax که کدش رو نوشتم ارسال کنید.

سمت php متن ساده رو دریافت کنید.

$Jsonstring = $_POST['Jsonstring'];

با تابع json_decode متن ساده جیسون رو به یک شیئ یا ارایه در php تبدیل کنید و از اون استفاده کنید.

<?php

$json =  $_POST['Jsonstring'];

$obj = json_decode($json);
echo $obj->{'age'};

?>

json-decode

متن json باید حتما استاندارد باشه

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

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

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

ورود به حساب کاربری