জাভাস্ক্রিপ্টে পিএইচপি ভেরিয়েবল পাস করুন


13

জাভাস্ক্রিপ্টে কিছু পিএইচপি ভেরিয়েবলগুলি পাস করার কোনও সম্ভাবনা আছে যাতে আমি পরে সেগুলি ব্যবহার করতে পারি?

শুধু ভিতরে single.php
আমি শুনেছি wp_enqueue_scriptsকিন্তু এটির সাথে জেএস ফাইলের কোনও পথ ঘোষণা করা প্রয়োজনীয় বিষয়, তবে আমার এটির দরকার নেই।


পরে আপনি কী বুঝবেন এবং আপনি কোথায় ভেরিয়েবলগুলি ব্যবহার করতে চান (পিএইচপি ভেরিয়েবলগুলি যেখানে সম্মানের সাথে)? আপনি অবশ্যই পিএইচপি এর মাধ্যমে জাভাস্ক্রিপ্ট কোড ইকো / মুদ্রণ করতে পারেন এবং এইভাবে পিএইচপি ভেরিয়েবল মান সন্নিবেশ করতে পারেন। তবে এটি আপনি যা চান তা নয়, আমি অনুমান করি ...
tfrommen

আমি ফেসবুক এপিআই থেকে কিছু রেসপন্সের সাথে একটি নতুন ডিবি টেবিল তৈরি করেছি। এটি সারণী: ক্রিয়া_আইডি, ব্যবহারকারী_আইডি, পোস্ট_আইডি, এফবি_আইডি যেখানে fb_id একটি ফেসবুক ক্রিয়া থেকে প্রতিক্রিয়া.আইড। তারপরে একক.এফপিতে আমার একটি বোতাম রয়েছে যেখানে আমি টিপলে অবশ্যই এপিআই সহ এফবি অ্যাকশনটি মুছে ফেলতে হবে: এফবি.পি ('/' + fb.response, 'মুছুন'); যেখানে fb.response টেবিল থেকে fb_id করা উচিত।
সেবাস্তিয়ান কর্নেলিউ ভার্লান

উত্তর:


18

সেরা অনুশীলন পদ্ধতি

একবার দেখুন wp_localize_script, যা হুবহু এটি করতে বোঝানো হয়।

তবে এটির পূর্ববর্তী ব্যবহারের প্রয়োজন নেইwp_enqueue_scripts , সুতরাং আপনার জেএসকে অবশ্যই একটি পৃথক ফাইলে স্থানান্তর করতে হবে।
এটি অবশ্যই কয়েক মিনিটের প্রচেষ্টার পক্ষে মূল্যবান হবে sure

function wpse_96370_scripts()
{
    if ( is_single() ) {

        wp_register_script(
           'your_script_handle',
           get_template_directory_uri() . '/js/your-script.js',
           array( /* dependencies*/ ),
           1.0,
           true
       );

       wp_enqueue_script( 'your-script-handle' );

       $script_params = array(
           /* examples */
           'post' => 99,
           'users' => array( 1, 20, 2049 )
       );

       wp_localize_script( 'your-script-handle', 'scriptParams', $script_params );

    }
}
add_action( 'wp_enqueue_scripts', 'wpse_96370_scripts' );

জেএসে আপনি এর পরে উত্তীর্ণ প্যারামিটারগুলি ব্যবহার করতে সক্ষম হবেন:

var posts = scriptParams.post,
    secondUser = scriptParams.users[1]; /* index starts at 0 */

// iterate over users
for ( var i = 0; i < scriptParams.users.length; i++ ) {
    alert( scriptParams.users[i] );
}

[সম্পাদনা] আপনার পরিস্থিতি

আপনার মতামত অনুযায়ী

আমি response.idফেসবুক এপিআই থেকে কিছু এস দিয়ে একটি নতুন ডিবি টেবিল তৈরি করেছি । এটি সারণী: ক্রিয়া_আইডি, ব্যবহারকারী_আইডি, পোস্ট_আইডি, এফবি_আইডি যেখানে fb_id একটি ফেসবুক ক্রিয়া থেকে প্রতিক্রিয়া.আইড। তারপরে একক.এফপিতে আমার একটি বোতাম আছে যেখানে আমি টিপলে অবশ্যই এপিআই সহ এফবি অ্যাকশনটি মুছতে হবে: টেবিল থেকে FB.api('/'+fb.response, 'delete');কোথায় fb.responseহওয়া উচিত fb_id

নিম্নলিখিতটি আপনার থিমের /js/ফোল্ডারটি রাখুন , এটি তৈরি করুন, যদি এটি বিদ্যমান না থাকে।
আসুন ফাইলটি কল করুন fb-response.js:

jQuery( '#button_id' ).click( function() {
    FB.api( '/' + fbParams.id, 'delete' );
});

তারপরে উপরে বর্ণিত হিসাবে নিবন্ধন করুন, এনকুই এবং স্থানীয়করণ করুন। ধরে নিই যে আপনার যে আইডিটি আপনি পাস করতে চান তা বলি $fb_id:

wp_register_script(
    'fb-response',
     get_template_directory_uri() . '/js/fb-response.js',
     array( 'jquery' ),
     1.0,
     true
);

wp_enqueue_script( 'fb-response' );

wp_localize_script( 'fb-response', 'fbParams', array( 'id' => $fb_id ) );

এনবি স্পষ্টতই, উপরেরগুলি ধরে নিচ্ছে যে এটি কোনও থিমের মধ্যে রয়েছে। যদি আমরা "প্লাগইন" কথা বলি তবে সেই অনুযায়ী স্থান পরিবর্তন করুন।


আমি এটিতে একটু ভিগিনিয়ার, তাই আমি এটি আমার ওয়ার্ডপ্রেসে প্রয়োগ করার চেষ্টা করি: পেপারম্যাশআপ . com / jquery- আইফোন- স্টাইল-ajax-switch । আপনি দেখতে পাচ্ছেন একটি জেএস ফাইল এবং কিছু ফাইলের জেএস কোডের লাইন ব্যবহারের ফাইলটিতে রয়েছে। বা আমি কোড কয়েক লাইন অন্য ফাইল লাগাতে পারেন?
সেবাস্তিয়ান কর্নেলিউ ভার্লান

কোন ছোট জাভাস্ক্রিপ্ট কর্মের জন্য আমার একটি ফাইল তৈরি করা উচিত? আপনি যদি উপলভ্য হন তবে আপনি স্কাইপ: সেবিকিউ 17 এ যুক্ত করতে পারেন?
সেবাস্তিয়ান কর্নেলিউ ভার্লান

এটি নির্ভর করে আপনি কী করতে চান, কোথায় আপনি এটি করতে চান ইত্যাদি। সাধারণত: না, আপনাকে কোনও বাহ্যিক জেএস ফাইল ব্যবহার করতে হবে না। তবে আপনি যদি চয়ন করেন তবে আপনি যা চান তা একটি একক ফাইলের মধ্যে রাখতে পারেন । আপনার যদি একাধিক ফাংশন থাকে তবে একাধিক ফাইলের প্রয়োজন নেই, যদি আপনি এটিই জিজ্ঞাসা করছিলেন। যাইহোক, আপনি ইতিমধ্যে এটি গ্রহণ করেছেন (আইএমএইচও বেশ জটিল এবং আপনার ক্ষেত্রে কিছুটা ওভারকিলের ধরণের) উত্তর - সম্পূর্ণরূপে না বুঝে, আমি যেমন গ্রহণ করি তেমন। কোনও অপরাধ নেই, @ জোহানেস। ;)
tfrommen

1
কেউ নেওয়া হয়নি, @tf। এখন পর্যন্ত এটি সীমান্তের ওভারকিল হতে পারে, তবে একটির জন্য তার কোডটি বৃদ্ধি পেতে পারে এবং অন্যটির ক্ষেত্রে প্রাথমিক প্রশ্নটি বহুবচন আকারে "ভেরিয়েবল" এর কথা বলেছিল। আপনার উত্তর যদিও ঠিক বৈধ, সুতরাং আমার কাছ থেকে +1।
জোহানেস পিল

2
ডাব্লুপি_লোক্যালাইজ_স্ক্রিপ্ট একটি জাভাস্ক্রিপ্ট ফাইলে পিএইচপি মানগুলি পাস করার জন্য একটি খুব অনুমিত এবং শক্তিশালী ফাংশন। আশ্চর্যজনকভাবে অনেকেই ওয়ার্ডপ্রেসের এই শক্তিশালী বৈশিষ্ট্য সম্পর্কে আসলে জানেন না।
ডোয়াইন চারিংটন

1

আপনার মন্তব্য পড়ে, আমি বুঝতে পারি যে আপনি এরকম কিছু করতে চাই:

// Do something to get the ID
$facebook_id = ...

// Create and print the button
echo '<input onclick="FB.api('/'+'.$facebook_id.', 'delete')" />';

না, এটি সেই পৃষ্ঠা যেখানে আমি কাজ করছি: মজাদার- videoro.com/the-dark-knight-rises-trailer-Ficial । আপনি চাইলে ওয়েবসাইটে লগইন করতে পারেন। তারপরে আপনি একটি jquery আইওএস স্টাইল বোতাম দেখতে পাবেন। আমি অফ স্লাইড যখন আমি fb এপি একটি পোস্ট মুছে ফেলতে হবে। পোস্ট আইডি ডিবিতে আছে।
সেবাস্তিয়ান কর্নেলিউ ভার্লান

ঠিক আছে, মূলত আমি আমার উত্তরে যা লিখেছিলাম। ডাটাবেস থেকে আইডিটি পুনরুদ্ধার করুন এবং এটি একটি ভেরিয়েবলের মধ্যে সঞ্চয় করুন। তারপরে এটি সরাসরি আপনার এক-লাইন জাভাস্ক্রিপ্ট ফাংশন কলটিতে মুদ্রণ করুন। <input ... />এবং এর কাজটি কেবল প্রদর্শনের উদ্দেশ্যে ছিল। আমি আপনাকে যতদূর বুঝতে পেরেছি, আপনার যা প্রয়োজন তা সবই বলেছে। যদি তা না হয় তবে দয়া করে আরও কিছু ব্যাখ্যা করার চেষ্টা করুন, তবে আপনার প্রশ্নে, মন্তব্যে নয়।
tfrommen

আমি পিএইচপি এবং জেএস কোড একই লাইনে ব্যবহার করতে চাই না, ওয়ার্ডপ্রেসে কিছু স্বয়ংক্রিয়ভাবে ফাংশন হয় ...
সেবাস্তিয়ান কর্নেলিউ ভার্লান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.