สอบถามวิธีเขียนโปรแกรมแบบนี้หน่อยครับ
สวัสดีครับ ผมมือใหม่ครับ อยากจะสอบถามเรื่องการเขียน โปรแกรม ต่อยอดจากเรื่องนี้หน่อยครับ
ตรงส่วนนี้ครับ
$replace[0] = $title;
$replace[1] = $description;
<form name="frm_data" method="post" action="index.php">
ใส่ Title : <input name="$title" type="text" /><br/>
ใส่ Description : <input name="$description" type="text" /><br/>
<input name="but_submit" type="submit" value="Submit" />
</form>
การใช้งาน Template กับเว็บไซต์ (ตอนที่ 4)
ตรงส่วนนี้ครับ
$replace[0] = 'AJAX CMS';
$replace[1] = 'Goragod.com';
คำถามคือ ถ้าเราต้องการจะแทนค่า 'AJAX CMS' หรือ 'Goragod.com' ให้เป็นตัวแปร $title , $description ตามลำดับ เพื่อให้รับค่าจาก
จากการสร้างฟอร์ม รับค่าขึ้นมา จะต้องเขียนโปรแกรอย่างไรครับ
---
ผมลองเขียนแบบนี้ แต่มันไม่ผ่านครับ
ตัวอย่าง จากไฟล์ index.php นะครับ
$replace[0] = $title;
$replace[1] = $description;
ตัวอย่าง จากฟอร์ม inputdata.html
<form name="frm_data" method="post" action="index.php">
ใส่ Title : <input name="$title" type="text" /><br/>
ใส่ Description : <input name="$description" type="text" /><br/>
<input name="but_submit" type="submit" value="Submit" />
</form>
ไม่รู้ว่าเขียนค่าตัวแปรจากอะเรย์ผิด? หรือเขียนตรงไหนผิด? หรือการเขียนที่ถูกต้อง ทำอย่างไร?
จุดประสงค์คือ จะให้
$replace[0] มันรับค่าจากฟอร์ม นะครับขอบคุณมากครับ
$replace=array();
$replace[] = 'GCMS';
$replace[] = 'Gragod.com';
echo preg_replace($patt, $replace, $body);
1. สร้างฟอร์มขี้นมา เพื่อรับค่าที่จะใส่ลงไปเป็นคำอะไรก็ได้
2. นำค่าที่ได้นั้นมาแทนใน $replace[] = แทนค่าที่รับมาจากฟอร์มครับ
เช่น <input name="title" type="text" /><br/> เวลาเรากรอกในฟอร์มจะ กรอกคำว่า Hello world
พอเอามาแทนใน $replace[] = 'Hello world'; อัตโนมัติเลย โดยที่เราไม่ต้องเขียนไว้ก่อน
จากตัวอย่างของคุณแอดมิน ตรง $replace[] = 'GCMS'; นั้นคุณแอดมินเขียน 'GCMS' เอาไว้ตั้งแต่แรก แต่ผมต้องการให้มันเอาค่ามาจากฟอร์มที่กรอกไว้มานะครับ
ขอบคุณครับ
$replace[] = $_POST['title'];
หรือ
$title = ......
......
$replace[] = $ttile;
1. inputdata.php
<form name="frm_data" method="post" action="indextest.php">
ใส่ Title ตรงนี้ <input name="Title" type="text" /><br/>
ใส่ Description ตรงนี้ <input name="Description" type="text" /><br/>
<input name="but_submit" type="submit" value="Submit" />
</form>
2. indextest.php
<?php
// อ่าน skin
$skin = file_get_contents( 'layout.html' );
// กำหนด pattern ที่เป็นไปได้
$patt = array( '{Title}','{Description}');
// กำหนดค่าที่จะแสดง
$replace[0] = $_POST['Title'];
$replace[1] = 'This is Description';
// แทนที่ลงใน skin และแสดงผล
echo str_replace( $patt , $replace , $skin );
?>
3. layout.html
<div style="text-align: center;">{Title}<br></div>
<h2 style="text-align: center;">{Description}</h2>
จาก ไฟล์ที่ 1 เมื่อผมใส่ Hello World ลงในช่องแรกแล้ว ปรากฏว่า เมื่อดูที่ browser มันไม่โชว์ Hello World ครับ มันเว้นว่างไว้ โชว์แต่บรรทัดที่ 2 คือ This is Description อย่างเดียว (ช่องสองนี้ไม่ได้กอรกอะไรลงไปจากไฟล์ที่ 1 ) ทำอย่างไรจะให้มันแสดง Hello World ด้วยนะครับ
ช่วยผมด้วยนะครับ ผมทำไม่เป็นจริงๆ ครับ ขอบคุณมากๆ ครับ
ลอง print_r($_POST) ดูครับ ว่ามีค่าส่งมาหรือไม่
ถ้าค่าที่ส่งมาถูกต้อง ลองใช้ preg_replace แทน str_replace (ดูตามต้นฉบับละกัน)