ฉันจะส่งตัวแปร JavaScript ไปยัง PHP ได้อย่างไร


150

ฉันต้องการส่งตัวแปร JavaScript ไปยัง PHP โดยใช้อินพุตที่ซ่อนอยู่ในแบบฟอร์ม

แต่ฉันไม่สามารถได้รับค่าของเข้า$_POST['hidden1'] $salarieidมีอะไรผิดปกติหรือเปล่า?

นี่คือรหัส:

<script type="text/javascript">
    // View what the user has chosen
    function func_load3(name) {
        var oForm = document.forms["myform"];
        var oSelectBox = oForm.select3;
        var iChoice = oSelectBox.selectedIndex;
        //alert("You have chosen: " + oSelectBox.options[iChoice].text);
        //document.write(oSelectBox.options[iChoice].text);
        var sa = oSelectBox.options[iChoice].text;
        document.getElementById("hidden1").value = sa;
    }
</script>

<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">
    <input type="hidden" name="hidden1" id="hidden1" />
</form>

<?php
   $salarieid = $_POST['hidden1'];
   $query = "select * from salarie where salarieid = ".$salarieid;
   echo $query;
   $result = mysql_query($query);
?>

<table>
   Code for displaying the query result.
</table>

2
คุณสามารถเก็บค่าตัวแปร js ในคุกกี้และเข้าถึงตัวแปรนั้นในคุกกี้ php ในภายหลัง
shasi kanth

2
@shasikanth - คุณสามารถทำได้แต่คุกกี้จะไม่ถูกตั้งค่าจนกว่าจะมีการดูหน้าเว็บเป็นครั้งที่สอง และในเวลานั้นมันจะเป็นค่าจากการดูหน้าแรก - มันอยู่ข้างหลังเสมอ คุกกี้ไม่ใช่กลไกในการส่งผ่านข้อมูลกลับไปยังเซิร์ฟเวอร์แบบไดนามิก คุณต้องทำอย่างอื่นเพื่อรีเฟรชหน้าเช่นโพสต์ฟอร์มหรือโทรอาแจ็กซ์ และถ้าคุณทำอย่างใดอย่างหนึ่งไม่มีเหตุผลที่จะใช้คุกกี้ - เพียงแค่ส่งข้อมูลในกลไกที่คุณใช้ นอกจากนี้คุกกี้จะยังคงอยู่หลังจากหายไปจากหน้าไม่ใช่สิ่งที่ตั้งใจไว้ในคำถามนี้
ToolmakerSteve

คำตอบ:


90

คุณไม่สามารถส่งค่าตัวแปรจากโค้ดจาวาสคริปต์หน้าปัจจุบันไปยังโค้ด PHP หน้าปัจจุบัน ... โค้ด PHP ทำงานที่ฝั่งเซิร์ฟเวอร์และไม่รู้อะไรเลยว่าเกิดอะไรขึ้นกับฝั่งไคลเอ็นต์

คุณต้องส่งตัวแปรไปยังโค้ด PHP จากฟอร์ม HTML โดยใช้กลไกอื่นเช่นการส่งแบบฟอร์มโดยใช้วิธี GET หรือ POST

<DOCTYPE html>
<html>
  <head>
    <title>My Test Form</title>
  </head>

  <body>
    <form method="POST">
      <p>Please, choose the salary id to proceed result:</p>
      <p>
        <label for="salarieids">SalarieID:</label>
        <?php
          $query = "SELECT * FROM salarie";
          $result = mysql_query($query);
          if ($result) :
        ?>
        <select id="salarieids" name="salarieid">
          <?php
            while ($row = mysql_fetch_assoc($result)) {
              echo '<option value="', $row['salaried'], '">', $row['salaried'], '</option>'; //between <option></option> tags you can output something more human-friendly (like $row['name'], if table "salaried" have one)
            }
          ?>
        </select>
        <?php endif ?>
      </p>
      <p>
        <input type="submit" value="Sumbit my choice"/>
      </p>
    </form>

    <?php if isset($_POST['salaried']) : ?>
      <?php
        $query = "SELECT * FROM salarie WHERE salarieid = " . $_POST['salarieid'];
        $result = mysql_query($query);
        if ($result) :
      ?>
        <table>
          <?php
            while ($row = mysql_fetch_assoc($result)) {
              echo '<tr>';
              echo '<td>', $row['salaried'], '</td><td>', $row['bla-bla-bla'], '</td>' ...; // and others
              echo '</tr>';
            }
          ?>
        </table>
      <?php endif?>
    <?php endif ?>
  </body>
</html>

@ Sergey ฉันใช้แบบฟอร์มส่งที่นี่ด้วยวิธีการ POST ฉันไม่รู้ว่าทำไมมันไม่ทำงาน คุณรู้ไหมว่าทำไม? และวิธีการแก้ปัญหานั้น?
SUN Jiangong

@sergey ดังนั้นฉันจำเป็นต้องใช้ ajax? ที่จริงแล้วฉันเป็น familliar กับสิ่งนั้น
SUN Jiangong

ที่จริงฉันใช้วิธีการของคุณในกล่องเลือกหนึ่งระดับที่ผ่านมา แต่ตอนนี้ฉันได้ทำกล่องเลือกแบบสามสายดังนั้นฉันไม่สามารถใช้วิธีการของคุณได้
SUN Jiangong

ณ จุดนี้: ใช่คุณต้องใช้เทคโนโลยี AJAX หากคุณมีปัญหาในการรับรู้ฉันคิดว่าฉันสามารถช่วยได้
Sergey Kuznetsov

3
@MadaraUchiha OP ใช้mysql_ฟังก์ชั่นแล้ว; มันจะไม่เป็นเป้าหมายของการตอบคำถามนี้ด้วยการเขียนใหม่ทั้งหมด
Ja͢ck

26

เพียงบันทึกไว้ในคุกกี้:

$(document).ready(function () {
  createCookie("height", $(window).height(), "10");
});

function createCookie(name, value, days) {
  var expires;
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
  }
  else {
    expires = "";
  }
  document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";
}

จากนั้นอ่านด้วย PHP:

<?PHP
   $_COOKIE["height"];
?>

มันไม่ใช่ทางออกที่ดี แต่ใช้งานได้


2
Finaly! selution ที่ใช้งานได้! ฉันกำลังมองหาเวลาหลายชั่วโมงเพื่อสร้างความมั่นใจในตอนนี้สร้างเกมและอยากจะส่งคะแนนสูงสุดไปยังฐานข้อมูลได้รับการแก้ไขแล้ว! ไชโย!
Cid-El

1
อันที่จริงมันเป็นทางออกที่ดี! เปลี่ยนจาก php เป็น javascript เป็นเรื่องง่าย จาก javascript ถึง php ไม่ใช่เรื่องง่าย การใช้คุกกี้นั้นเรียบง่ายและสง่างาม ไม่ bs .. !! แน่นอนว่าหากลูกค้าปิดคุกกี้ ,,, นั่นเป็นปัญหาที่จะจัดการกับค่าเริ่มต้น ..
34432 JamesAD-0

คุณช่วยบอกให้ฉันรู้วิธีใช้สิ่ง $ _COOKIE ["ส่วนสูง"] เพื่อรับชื่อมูลค่าในนั้นได้หรือไม่? ขอบคุณ ไม่ทำงานสำหรับฉัน
Zac

4
แม้จะมี upvotes ทั้งหมดนี่ไม่ใช่ทางออกที่ดี เหตุผล: คุกกี้จะไม่เห็นโดยเซิร์ฟเวอร์จนต่อไปครั้งหน้าจะมีการร้องขอจากเบราว์เซอร์ มันคือ "หนึ่งหลัง" เสมอ ครั้งแรกที่เปิดหน้าเว็บในเบราว์เซอร์จะไม่มีคุกกี้เลย เป็นที่ยอมรับหรือไม่? ครั้งต่อไปที่เปิดหน้าเว็บในเบราว์เซอร์จะมีคุกกี้ตั้งแต่ครั้งแรก สำหรับค่าคงที่เช่นตัวอย่างนี้อาจยอมรับได้ (แม้จะไม่ทำงานในครั้งแรก !!) ตอนนี้ให้พิจารณาค่าแบบไดนามิกเช่นวันที่และเวลาปัจจุบัน php จะเห็น datetime ก่อนหน้านี้ไม่ใช่ตอนนี้ ใช้อาแจ็กซ์
ToolmakerSteve

20

มีหลายวิธีในการส่งผ่านตัวแปรจาก JavaScript ไปยัง PHP (ไม่ใช่หน้าปัจจุบัน)

คุณสามารถ:

  1. ส่งข้อมูลในแบบฟอร์มตามที่ระบุไว้ที่นี่ (จะส่งผลให้รีเฟรชหน้า)
  2. ส่งต่อใน Ajax (มีบทความหลายบทความเกี่ยวกับเรื่องนี้) (ไม่มีการรีเฟรชหน้า)
  3. สร้างคำขอ HTTP ผ่านคำขอ XMLHttpRequest (ไม่มีการรีเฟรชหน้า) เช่นนี้:

 if (window.XMLHttpRequest){
     xmlhttp = new XMLHttpRequest();
 }

else{
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }

 var PageToSendTo = "nowitworks.php?";
 var MyVariable = "variableData";
 var VariablePlaceholder = "variableName=";
 var UrlToSend = PageToSendTo + VariablePlaceholder + MyVariable;

 xmlhttp.open("GET", UrlToSend, false);
 xmlhttp.send();

ฉันแน่ใจว่าสิ่งนี้สามารถทำให้มองนักเล่นและวนรอบตัวแปรทั้งหมดและอะไร - แต่ฉันได้เก็บไว้เป็นพื้นฐานเพื่อให้ง่ายต่อการเข้าใจสำหรับสามเณร


ฉันจะได้รับ db db แล้วส่งผ่านไปยัง javascript ทุกครั้งที่ฉันส่งแบบฟอร์มใหม่ ตัวแปรในจาวาสคริปต์ก็จะเปลี่ยนไปเช่นกัน อย่างไร ช่วยฉันด้วย. :(
Vincent

3
อาแจ็กซ์เป็นจริง XMLHttpRequest หลังเป็นเพียงคำศัพท์ทางเทคนิคสำหรับมัน
Alex C.

14

นี่คือตัวอย่างการทำงาน: รับค่าตัวแปรจาวาสคริปต์ในหน้าเดียวกันใน php

<script>
var p1 = "success";
</script>

<?php
echo "<script>document.writeln(p1);</script>";
?>

1
ฉันลองใช้ผู้เชี่ยวชาญคนนี้แล้วก็ใช้งานได้จริง แต่ถ้าฉันลองแบบนี้: <? php var x = <script> document.writeln (p1); </script> ";?> จากนั้นเสียงก้องมันใช้งานไม่ได้ คุณมีวิธีอื่นไหม
Juna serbaserbi

3
คุณสามารถลองเช่น <script> var p1 = "สำเร็จ" นี้; </script> <? php $ x = "<script> document.writeln (p1); </script>"; echo $ x; ?>
Arslan Tabassum

3
php ในกรณีนี้เป็นเพียงแค่การสะท้อนจาวาสคริปต์ไปยังหน้าเป็นสตริง Javascript ไม่ได้ถูกส่งผ่านไปยัง php
Ben

ใช่นั่นคือสิ่งที่เราต้องทำ ... บางครั้งเราจำเป็นต้องใช้ค่า JavaScript ใน php ในหน้าเดียวกัน & โดยไม่ต้องรีเฟรชหน้า ... จากนั้นมันจะทำงานเหมือนมีเสน่ห์ .. :)
Arslan Tabassum

1
@ArslanTabassum ไม่คุณเข้าใจผิดความคิดเห็น php ไม่เคยเห็นคุณค่าของ p1 echo "<script>document.writeln(p1);</script>";ใช้ตัวแปร javascript p1ในjavascriptไม่ใช่ใน php document.writelnเป็นฟังก์ชั่นจาวาสคริปต์ที่คุณใช้ในเบราว์เซอร์ในขณะที่เบราว์เซอร์กำลังสร้างหน้า HTML
ToolmakerSteve

6

PHP ทำงานบนเซิร์ฟเวอร์ก่อนที่หน้าจะถูกส่งไปยังผู้ใช้ JavaScript จะถูกเรียกใช้บนคอมพิวเตอร์ของผู้ใช้เมื่อได้รับดังนั้นสคริปต์ PHP ได้ดำเนินการไปแล้ว

หากคุณต้องการส่งค่า JavaScript ไปยังสคริปต์ PHP คุณต้องทำ XMLHttpRequest เพื่อส่งข้อมูลกลับไปที่เซิร์ฟเวอร์

นี่เป็นคำถามก่อนหน้านี้ที่คุณสามารถติดตามข้อมูลเพิ่มเติมได้: Ajax Tutorial

ตอนนี้ถ้าคุณเพียงแค่ต้องส่งค่าฟอร์มไปยังเซิร์ฟเวอร์คุณสามารถทำโพสต์รูปแบบปกติซึ่งทำสิ่งเดียวกันได้ แต่ต้องรีเฟรชหน้าทั้งหมด

<?php
if(isset($_POST))
{
  print_r($_POST);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  <input type="text" name="data" value="1" />
  <input type="submit" value="Submit" />
</form>

การคลิกที่ส่งจะเป็นการส่งหน้าและพิมพ์ข้อมูลที่ส่ง


1
@Zurahn ใช่ฉันอาจลองใช้ XMLHttpRequest ดังนั้นฉันไม่สามารถส่งค่าจาวาสคริปต์ไปยังสคริปต์ php ในหน้าเดียวกันโดยใช้จาวาสคริปต์ได้หรือไม่ ฉันค้นหามากมีคนบอกว่าสามารถทำได้ด้วยการป้อนข้อมูลที่ซ่อนอยู่ในแบบฟอร์ม ฉันจำเป็นต้องลองใช้วิธีแก้ปัญหานี้อีกหรือไม่
SUN Jiangong

6

ฉันพยายามคิดออกเองแล้วก็รู้ว่าปัญหาคือว่านี่เป็นวิธีย้อนหลังในการดูสถานการณ์ แทนที่จะพยายามส่งผ่านสิ่งต่างๆจาก JavaScript ไปยัง php อาจเป็นการดีที่สุดที่จะหลีกเลี่ยงวิธีอื่น ๆ ในกรณีส่วนใหญ่ โค้ด PHP ทำงานบนเซิร์ฟเวอร์และสร้างโค้ด html (และอาจเป็นสคริปต์จาวาเช่นกัน) จากนั้นเบราว์เซอร์จะโหลดหน้าเว็บและเรียกใช้งานสคริปต์ html และ java

ดูเหมือนว่าวิธีการที่เหมาะสมในการเข้าถึงสถานการณ์เช่นนี้คือการใช้ PHP เพื่อสร้าง JavaScript และ html ที่คุณต้องการจากนั้นใช้ JavaScript ในหน้าเพื่อทำสิ่งที่ PHP ไม่สามารถทำได้ ดูเหมือนว่าสิ่งนี้จะให้ประโยชน์แก่คุณทั้ง PHP และ JavaScript อย่างง่ายและตรงไปตรงมา

สิ่งหนึ่งที่ฉันทำไปแล้วทำให้การส่งสิ่งต่าง ๆ ไปยัง PHP จากหน้าเว็บของคุณได้ทันทีคือการใช้แท็กภาพ html เพื่อโทรหาโค้ด PHP บางสิ่งเช่นนี้

<img src="pic.php">

โค้ด PHP ใน pic.php จะสร้างรหัส html ก่อนที่หน้าเว็บของคุณจะโหลดขึ้นมา แต่โค้ด HTML นั้นถูกเรียกใช้โดยทั่วไป โค้ด php ที่นี่สามารถใช้ในการสร้างรูปภาพในหน้าของคุณ แต่สามารถมีคำสั่งที่คุณชอบนอกเหนือจากที่อยู่ในนั้น บางทีมันอาจเปลี่ยนแปลงเนื้อหาของไฟล์บางไฟล์บนเซิร์ฟเวอร์ของคุณ ฯลฯ ข้อดีของมันก็คือโค้ด php สามารถเรียกใช้งานจาก html และฉันถือว่า JavaScript แต่ข้อเสียคือเอาท์พุทเดียวที่สามารถใส่ในหน้าเว็บของคุณได้ ภาพ. คุณมีตัวเลือกในการส่งตัวแปรไปยังโค้ด php ผ่านพารามิเตอร์ใน url ตัวนับหน้าจะใช้เทคนิคนี้ในหลายกรณี


5

เราสามารถส่งผ่านค่าได้อย่างง่ายดายแม้ในหน้าเดียวกัน / ต่างกันโดยใช้คุกกี้ที่แสดงในรหัสดังต่อไปนี้ (ในกรณีของฉันฉันใช้กับการรวม Facebook) -

function statusChangeCallback(response) {
    console.log('statusChangeCallback');
    if (response.status === 'connected') {
        // Logged into your app and Facebook.
        FB.api('/me?fields=id,first_name,last_name,email', function (result) {
            document.cookie = "fbdata = " + result.id + "," + result.first_name + "," + result.last_name + "," + result.email;
            console.log(document.cookie);
        });
    }
}

และฉันได้เข้าถึงมัน (ในไฟล์ใด ๆ ) โดยใช้ -

<?php 
    if(isset($_COOKIE['fbdata'])) { 
        echo "welcome ".$_COOKIE['fbdata'];
    }
?>

5

นี่เป็นวิธีที่ฉันทำ (ฉันต้องการแทรกเขตเวลาท้องถิ่นลงใน PHP:

<?php
    ob_start();
?>

<script type="text/javascript">

    var d = new Date();
    document.write(d.getTimezoneOffset());
</script>

<?php
    $offset = ob_get_clean();
    print_r($offset);

2

ฟังก์ชั่นของคุณซึ่งตั้งค่ารูปแบบที่ซ่อนอยู่ถูกเรียกว่า? มันไม่ได้อยู่ในตัวอย่างนี้ คุณไม่ควรมีปัญหาในการแก้ไขค่าที่ซ่อนอยู่ก่อนโพสต์แบบฟอร์มกลับไปที่เซิร์ฟเวอร์


@perstilence คุณพูดถูกฉันไม่ได้เรียกฟังก์ชั่น คุณรู้วิธีการโทรเป็น php หรือไม่?
SUN Jiangong

อืมม ดูเหมือนว่าคุณต้องการโทรหาเมื่อมีคนเลือกบางสิ่งในแบบฟอร์มของคุณ / ตัวจัดการ onClick การโทรจาก PHP นั้นไม่สมเหตุสมผล มีคนเลือกค่าฟอร์มฟังก์ชั่นของคุณจะเริ่มทำงานอัปเดตค่าฟอร์มที่ซ่อนอยู่จากนั้นจึงใช้วิธีการ php ในการโพสต์แบบฟอร์ม ไม่มี?
pestilence669

@pestilence ฉันต้องการให้ใครบางคนเลือกรายการใน selectbox และเมื่อฉันคลิกปุ่มส่งผลการค้นหาจะปรากฏในตาราง ดังนั้นที่แบ็กเอนด์เมื่อฉันเลือกไอเท็มค่าของมันจะถูกส่งผ่านไปยังเคียวรี mysql ใน php เป็นตัวแปร นี่คือสิ่งที่ฉันต้องการจะทำ แต่ดูเหมือนว่าฉันไม่พบวิธีแก้ปัญหาใน javascript คุณมีเงื่อนงำอะไรบ้าง
SUN Jiangong

ใช่โพสต์หรือรับวิธีการในแบบฟอร์มจะได้รับการยอมรับถ้ามันทำงาน
SUN Jiangong

2

รหัสของคุณมีบางสิ่งผิดปกติ

  • คุณกำหนดฟังก์ชัน JavaScript, func_load3 () แต่อย่าเรียกใช้
  • ฟังก์ชั่นของคุณถูกกำหนดไว้ผิดที่ เมื่อมีการกำหนดไว้ในหน้าของคุณวัตถุ HTML ที่อ้างถึงยังไม่ได้โหลด รหัสจาวาสคริปต์ส่วนใหญ่ตรวจสอบว่าเอกสารถูกโหลดเต็มก่อนที่จะดำเนินการหรือคุณสามารถย้ายรหัสของคุณผ่านองค์ประกอบที่อ้างถึงในหน้า
  • แบบฟอร์มของคุณไม่มีวิธีการส่ง มันต้องมีปุ่มส่ง
  • คุณไม่ได้ตรวจสอบว่ามีการส่งแบบฟอร์มของคุณหรือไม่

เป็นไปได้ที่จะตั้งค่าตัวแปร JavaScript ในตัวแปรที่ซ่อนอยู่ในแบบฟอร์มจากนั้นส่งและอ่านค่ากลับมาใน PHP นี่คือตัวอย่างง่ายๆที่แสดงสิ่งนี้:

<?php
if (isset($_POST['hidden1'])) {
   echo "You submitted {$_POST['hidden1']}";
   die;
}

echo <<<HTML
   <form name="myform" action="{$_SERVER['PHP_SELF']}" method="post" id="myform">
      <input type="submit" name="submit" value="Test this mess!" />
      <input type="hidden" name="hidden1" id="hidden1" />
   </form>

   <script type="text/javascript">
      document.getElementById("hidden1").value = "This is an example";
   </script>
HTML;
?>

2

เมื่อเพจของคุณโหลดโค้ด PHP ครั้งแรกและตั้งค่าเลย์เอาต์ที่สมบูรณ์ของหน้าเว็บของคุณ หลังเลย์เอาต์ของหน้าเว็บจะตั้งค่าให้โหลด JavaScript ตอนนี้จาวาสคริปต์โต้ตอบกับ DOM โดยตรงและสามารถจัดการเลย์เอาต์ได้ แต่ PHP ไม่สามารถรีเฟรชหน้าได้ มีวิธีเดียวคือการรีเฟรชหน้าของคุณไปยังและส่งผ่านพารามิเตอร์ใน URL ของหน้าเพื่อให้คุณสามารถรับข้อมูลผ่าน PHP ดังนั้นเราจึงใช้ AJAX เพื่อโต้ตอบ Javascript กับ PHP โดยไม่ต้องโหลดหน้าซ้ำ AJAX ยังสามารถใช้เป็น API อีกสิ่งหนึ่งถ้าคุณได้ประกาศตัวแปรใน PHP แล้ว ก่อนที่จะโหลดหน้าเว็บคุณสามารถใช้กับตัวอย่าง Javascript ของคุณ

<script>
var username = "<?php echo $myname;?>";
alert(username);
</script>

รหัสข้างต้นถูกต้องและจะใช้งานได้ แต่รหัสด้านล่างผิดทั้งหมดและจะไม่ทำงาน

<script>
    var username = "syed ali";
    var <?php $myname;?> = username;
    alert(myname);
    </script>
  • ส่งค่าจาก JavaScript ไปยัง PHP ผ่าน AJAX

    มันเป็นวิธีที่ปลอดภัยที่สุดที่จะทำ เนื่องจากเนื้อหา HTML สามารถแก้ไขได้ผ่านเครื่องมือสำหรับนักพัฒนาและผู้ใช้สามารถจัดการข้อมูลได้ ดังนั้นจะเป็นการดีกว่าถ้าใช้ AJAX หากคุณต้องการความปลอดภัยมากกว่า variable.if ถ้าคุณเป็นมือใหม่กับ AJAX โปรดเรียนรู้ AJAX มันง่ายมาก

วิธีที่ดีที่สุดและปลอดภัยที่สุดในการส่งผ่านตัวแปร JavaScript ไปยัง PHP คือผ่าน AJAX

ตัวอย่าง AJAX แบบง่าย

var mydata = 55;
var myname = "syed ali";
var userdata = {'id':mydata,'name':myname};
    $.ajax({
            type: "POST",
            url: "YOUR PHP URL HERE",
            data:userdata, 
            success: function(data){
                console.log(data);
            }
            });
  • ค่า PASS จาก javascript ถึง php ผ่านช่องที่ซ่อนอยู่

มิฉะนั้นคุณสามารถสร้างอินพุต HTML ที่ซ่อนอยู่ภายในแบบฟอร์มของคุณ ชอบ

<input type="hidden" id="mydata">

จากนั้นผ่าน jQuery หรือ javaScript ส่งค่าไปยังฟิลด์ที่ซ่อนอยู่ ชอบ

<script>
var myvalue = 55;
$("#mydata").val(myvalue);
</script>

ตอนนี้เมื่อคุณส่งแบบฟอร์มคุณสามารถรับค่าใน PHP


1
ขอบคุณ. มีประโยชน์มาก วิธีการ jQuery ไม่อนุญาตให้คุณส่งข้อมูลที่สร้างขึ้นเมื่อหน้าทำงานหรือไม่ คุณไม่สามารถตั้งค่าฟิลด์อินพุตให้เป็นค่า & รับมันโดย php? นี่เป็นหนึ่งในตัวอย่างอาแจ็กซ์ที่ชัดเจนที่สุดที่ฉันเคยเห็น ฉันรอคอยที่จะลอง
หยิก

1

อาจเป็นได้ว่าคุณสามารถใช้วิธี jquery serialize () เพื่อให้ทุกอย่างเป็นไปได้ในครั้งเดียว

var data=$('#myForm').serialize();

// ด้วยวิธีนี้คุณจะได้ค่าที่ซ่อนอยู่ในฝั่งเซิร์ฟเวอร์


0

การแก้ปัญหาที่เห็นได้ชัดนี้ไม่ได้กล่าวถึงก่อนหน้านี้ คุณยังสามารถใช้คุกกี้เพื่อส่งผ่านข้อมูลจากเบราว์เซอร์กลับไปที่เซิร์ฟเวอร์

เพียงตั้งค่าคุกกี้ด้วยข้อมูลที่คุณต้องการส่งไปยัง PHP โดยใช้ javascript ในเบราว์เซอร์

จากนั้นเพียงอ่านคุกกี้นี้ทางด้าน PHP


. . . คุณต้องการที่จะยกตัวอย่างและอาจจะเชื่อมโยงที่เกี่ยวข้องหรือสอง? (ดูวิธีการตอบ )
ashleedawg

0

เราไม่สามารถส่งค่าตัวแปร JavaScript ไปยังโค้ด PHP ได้โดยตรง ... โค้ด PHP ทำงานที่ฝั่งเซิร์ฟเวอร์และไม่รู้อะไรเลยว่าเกิดอะไรขึ้นกับฝั่งไคลเอ็นต์

ดังนั้นจะเป็นการดีกว่าถ้าใช้ AJAX เพื่อแยกค่า JavaScript ลงในโค้ด php

หรือมิฉะนั้นเราสามารถทำสิ่งนี้ได้ด้วยความช่วยเหลือของคุกกี้ในรหัสของเรา

ขอบคุณ & ไชโย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.